前段時間 使用h5搞了個用cesium.js做的地圖服務功能,後來想整合到vue專案,當然最簡單的就是iframe直接拿來用了。這個還是挺簡單的 直接但html和vue的方法互動就是成了問題,vue呼叫html種方法還好,尤其是html呼叫vue中的方法當初就沒有解決,忙著專案上線直接搞了個setinterval不停輪詢,哎不說他了;
現在空點了來把問題解決了,俗話說得好閒時學來忙時用,閒時不學忙時莫得用,所以各位走過路過的朋友看過來看過來,要買鄉音這邊來(程式設計師改擺地攤了,哈哈哈)。且扯遠了下面進入主題
window.frames['iframe name'].方法名
如:
invokehtmlmethod() ,這個就有點難做了(準確來說是採坑了);第乙個當然會想到直接將方法綁到window上了;
create()然後html頁面中是這樣 執行報錯了},methods: ,
}
vm345:1 uncaught typeerror: window.parent.vuedefinedmyprop is not a function後來去網上看見這朋友是這麼做得at :1:15
部落格位址
於是我就照著改了試試;
data()}},html頁面是這樣created()
}, methods: ,
}
function不行報錯的;;;,invockiframemethod()
最後沒辦法,俺新建乙個專案
將** 改成這樣
data(),html頁面改成這樣created()
}, methods: ,
}
function』試試。。咦;ok了invockiframemethod()
奇葩的是吧**拷貝到原來的那個專案執行依然報錯;
剛開始以為是cesium影響了,我就新建個頁面來試試;還是不對;
又想到是不是element ui影響了,我又到新建的專案(不報錯的這個專案)裡去也把element ui 也安裝上,但是執行依然可以;
這初步排除了並不是這兩者影響造成的錯誤;調來調去始終就是不行,
難道是專案搭建的有問題??這個也不大可能呀;
執著的我就不信還找不到問題所在;
最後吧兩個專案**一比對:才發現是自己疏忽了,看下面**
不要意思帶大家繞了這麼大一圈,是這該死的單詞create
、created
(乙個一般現在時,乙個過去式)區別就這麼大~
哎,有時候自己給自己挖個坑,可能比別人挖得坑還要難爬出啦
好了問題終於解決了,完整**如下
vue頁面
呼叫html種方法html頁面width="100%" height="100%"frameborder="0" scrolling="no" ref="iframedom"
>
export
default
},created()
},methods: ,
invokehtmlmethod() ,
}
doctype html最後執行結果>
<
html
lang
="en"
>
<
head
>
<
meta
charset
="utf-8"
>
<
title
>title
title
>
head
>
<
body
>
<
button
onclick
="invockiframemethod()"
>點選呼叫iframe
button
>
<
script
>
function
invockiframemethod()
function
lodatable() `);
num--;
}}script
>
body
>
html
>
都是你的錯~粗心惹的禍,記錄記錄。,歡迎**一起交流
Vue使用iframe嵌入外部HTML檔案
專案開發的過程中,我們不可避免的會引入外部已經寫好的html檔案,那在不同的vue腳手架中如何成功引入html檔案呢?如何獲取到html檔案中的值呢?把要引入的檔案 假設是aaa.html檔案 放到static目錄下,在vue介面中引入 把要引入的檔案放到public目錄下,在vue介面中引入 注意...
Vue中嵌入iframe遇到的問題
1.iframe嵌入後在ios中無法滾動的問題。2.iframe嵌入後,設定高度100 出現上下滑動輕微晃動的問題。提供兩種解決辦法,為什麼產生這種晃動的bug還不得而知。解決辦法 1.在iframe元件外層再巢狀一層子元件。即把iframe所在元件引入其他子元件,不把iframe元件直接當做子元件...
js使用iframe嵌入頁面問題
1.在被嵌入頁面獲取iframe的src 寫在被嵌入頁面 window.parent.document.queryselector cust contentwindow.location.href 2.iframe嵌入頁面會出現兩個滾動條,解決這個問題可以設定iframe高度和內部頁面高度保持一致 ...