vue與iframe配合


需求說明
有很多人是這么說的,有vue,還用jquery干嘛,還用iframe干嘛。
vue強大不可否認,但是就因此認為在vue中不需要使用其他前端工程的方法,這是不對的。

源代碼構成
一段大於3000行的js代碼,主要是前端svg繪圖,操作包括jquery、jquery-ui 創建、更改、刪除svg節點,以及多種方式查看、修改節點屬性,響應請求,
一段200行左右的js代碼,自定義插件,基於原型鏈,主要用於暫存svg繪圖的內容
一段css文件,未壓縮狀態1000多行
任務計划
需要將整個項目代碼基於vue和vuex重構,時間不充裕也很難解決前端繪圖各種響應,只能最簡單的方式,將這一部分移植到iframe中,節約時間並完整保留功能

需要功能
vue 父級向 iframe 子級傳遞參數

<iframe
id="iframe"
ref="iframe"
:src="`../../../static/xxx.html?id=${this.id}`"
frameborder="0"
width="100%"
height="100%"
scrolling="no"
></iframe>


其中,iframe 引用的html文件必須放在static目錄下,this.id 是要傳遞的參數

在 iframe里獲取傳的id
console.log(location.search);
1
iframe 調用 父級 vue 的函數
首先要在vue里聲明函數,並掛到window上

created(){
window['go'] = () => {
this.go();
};
},
methods: {
go(){
//do somthing...
}
},

 

這段代碼聲明了一個函數名為go的函數,並在created里將其賦給window,名字仍為 go

在iframe 里調用該函數
window.parent.go();

這樣就能調都在父級vue里聲明的函數go


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM