關於iframe與父視窗元素選取的問題
在做專案的時候使用到了Iframe,可是在實現點選iframe內的元素動態改變父視窗導航欄相應條目高亮active的時候發現在iframe內Jq不能選取父容器的元素,仔細一想,確實是不應該選取到的,畢竟兩者不是同一個網頁,於是乎就尋找度娘了,在這裡總結一下解決的方法:
關於Jq在iframe內選取父視窗的元素:
要點就在於在普通的Jq選擇器內容後面新增一條parent.document來指示選擇器從父視窗尋找對應的元素,例如:
$("選擇器",parent.document).addClass("active");
關於Jq在父視窗選擇Iframe內的元素:
要點就在於在普通的Jq選擇器內容後面新增一條document.frames('iframe的name屬性').document來指示選擇器從相應的iframe內尋找相應的元素,例如:
$("選擇器",document.frames("myFrame").document).addClass("active");
JS也是同理,在選擇父視窗元素的時候:
window.parent.document.getElementById("XXX");
在選擇iframe內元素的時候:
window.frames["iframe_ID"].document.getElementById("XXX");
對於parent,這裡有比較詳細的介紹parent介紹。