小編給大家分享一下怎么解決iframe標簽嵌套問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出朔城免費做網(wǎng)站回饋大家。問題描述
當我們使用easyui做后臺管理系統(tǒng)的時候,會使用tree組件來實現(xiàn)樹形菜單,而我們每點擊一次相應(yīng)菜單,會根據(jù)是否有url來判斷是否是一級菜單,以及是否已經(jīng)存在
//根據(jù)該節(jié)點名字判斷該節(jié)點是否存在 if ($("#tabs").tabs("exists",node.text)){ //如果存在就直接選中 $("#tabs").tabs("select",node.text); }
如果為否,我們就會嵌套一個iframe標簽來打開一個相應(yīng)的html窗口
$("#tabs").tabs("add",{ //標題為當前節(jié)點的名稱 title:node.text, //沒有邊框 border:false, //是否顯示關(guān)閉按鈕 closable:true, //嵌套iframe標簽 content:"" })
而此時有一個什么樣的問題呢?有這樣一個情況,當我們在同一個瀏覽器中,在A和B兩個選項卡中都打開了后臺管理頁面,然后我們在A頁面進行了注銷操作,此時到A頁面點擊“員工管理”,那么此時應(yīng)該要實現(xiàn)全局刷新并返回到登錄頁面,如下圖所示
但是此時,由于我們嵌套iframe的緣故,當我們點擊員工管理,正常發(fā)送的請求是/employee/index,而此時由于已經(jīng)logout,那么當前用戶未認證
content:""
所以這里的iframe窗體的url地址就會變成login.jsp,從而演變成了iframe嵌套問題,也就是如下圖所示:
解決思路
在我們html中,每一個打開的窗體都有一個window對象,例如我們上圖所示,如果站在內(nèi)層窗體的角度來講,實際上外層窗體其實就是內(nèi)層窗體的父窗體(如果打開很多個嵌套,那么最外層窗體就是top),如果要獲取外層窗體也很簡單,就是window.parent。
此時,如果我們要打開i的窗體不是最外層窗體,我們只需要將最外層的窗體對象賦值給當前窗體即可
//如果當前的窗體不是最外層窗體 if (window != top){ //那么就將最外層窗體的的地址賦給當前窗體 top.location.href = window.location.href; }
以上是“怎么解決iframe標簽嵌套問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!