Vue iframe更改src后頁面未刷新問題解決方法
一、場景描述
在項目開發(fā)過程中,應用iframe
實現(xiàn)外系統(tǒng)頁面嵌套的時候,發(fā)現(xiàn)引入其他頁面后,頁面內(nèi)容并未刷新加載,經(jīng)過一番研究,解決方案如下:
vm.iframeSrc = iframeSRC if (document.getElementById('iframe')) { setTimeout(() => { document.getElementById(iframeid).contentWindow.location.reload(true); }, 200) }
注:務必在更改iframe src
屬性值之后補充頁面重載邏輯,否則無法解決問題。
注:window.reload是重新加載當前需要的所有內(nèi)容,也就包括頁面和后臺的代碼,此過程中實際上是從后臺重新進行操作;
二、高版本瀏覽器頁簽切換后內(nèi)容不刷新問題解決
在應用上面的解決措施后,發(fā)現(xiàn)Chrome(>75)
及IE高版本瀏覽器下,iframe
在更改了src
之后對應的網(wǎng)頁并未刷新問題復現(xiàn)。
2.1 解決思路
iframe
下頁面內(nèi)容未刷新問題其實是由于頁面未重新渲染導致的,但是通過在src
中添加時間戳以達到欺騙瀏覽器重新渲染的目的并未解決以上問題,后通過v-if
實現(xiàn)銷毀新建iframe
方式,完美解決問題。
2.2 解決措施
<iframe v-if="flagsArr[index]" :src='...+timeStamp'></iframe> handleSelect (tab, event) { this.index = tab.index this.flagsArr = Array(頁簽數(shù)組.length).fill(false) this.flagsArr[this.index] = true vm.iframeSrc = iframeSRC if (document.getElementById('iframe')) { setTimeout(() => { document.getElementById(iframeid).contentWindow.location.reload(true); }, 200) } }
三、拓展閱讀
3.1 keep-alive 緩存 iframe
因為iframe
不在vue
的虛擬節(jié)點里,所以即使使用了vue
的keep-alive
也不會緩存iframe
頁面。
我們可以換個思路解決這個問題。首先在router.js
里不要引入路徑,就是component
不寫,這樣會出現(xiàn)加載這個路由,頁面是空白,然后在app.vue
頁面引入iframe
的組件,在<roter-view />
下面加載這個iframe
組件,通過v-show
判斷$route.path === 'iframe的路由'
,如果是iframe
頁面,iframe
頁面就會正常加載出來,而且不管怎么跳轉(zhuǎn)路由都會保存當前狀態(tài),也就相當于默認把iframe
頁面加載出來,只是通過display:none
隱藏,如果到這個iframe
路由下了,再讓其顯示。
到此這篇關(guān)于Vue iframe更改src后頁面未刷新問題解決的文章就介紹到這了,更多相關(guān)Vue iframe更改src后頁面未刷新內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Vue.js框架實現(xiàn)火車票查詢系統(tǒng)(附源碼)
這篇文章主要介紹了利用Vue.js框架實現(xiàn)火車票查詢系統(tǒng)的相關(guān)資料,,文中給出了詳細的介紹與示例代碼,并在文章結(jié)尾給出了完整的項目下載,需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02Vue.js實現(xiàn)數(shù)據(jù)雙向綁定的代碼示例
在我們使用vue的時候,當數(shù)據(jù)發(fā)生了改變,界面也會跟著更新,但這并不是理所當然的,我們修改數(shù)據(jù)的時候vue是如何監(jiān)聽數(shù)據(jù)的改變以及當數(shù)據(jù)發(fā)生改變的時候vue如何讓界面刷新的,所以本文就給大家講講Vue.js 數(shù)據(jù)雙向綁定是如何實現(xiàn)的2023-07-07vue 路由視圖 router-view嵌套跳轉(zhuǎn)的實現(xiàn)
這篇文章主要介紹了vue 路由視圖 router-view嵌套跳轉(zhuǎn),主要實現(xiàn)的內(nèi)容有制作一個登錄頁面,跳轉(zhuǎn)到首頁,首頁包含菜單欄、頂部導航欄、主體,標準的后臺網(wǎng)頁格式,菜單點擊顯示不同的頁面,感興趣的小伙伴請參考下面文章內(nèi)容2021-09-09