天天看點

iframe子頁面與父頁面元素的通路以及js變量的通路

1、子頁面通路父頁面元素 

parent.document.getElementById('id')和document相關的方法都可以這樣用 

2、父頁面通路子頁面元素 

document.getElementById('iframeId').contentDocument.getElementsByTagName('table'); contentDocument後可以使用document相關方法 

3、子頁面通路父頁面js變量(注:父頁面的js變量需為全局變量) 

子頁面var variable = parent.variableParent   (variableParent為父頁面定義的變量) 

4、父頁面通路子頁面js變量 

這部分目前的解決方案是在父頁面設定全局變量,在子頁面進行修改後将子頁面的變量指派給父頁面 。

網上還有一種方法,但我在chrome上試過了,不好使。

1)擷取iframe節點

2)擷取iframe中的變量

示例:

a.html
<iframe id='x' name='x' src='b.html'/>

b.html
<script>
 var y='1';
</script>

在a.html中擷取y,則可以通過以下方式
window.frames['x'].y  //先擷取frame,在擷取y
或者
document.getElementById('x').contentWindow.y      

在iframe 定義了name屬性的情況下:window.frames['x']==document.getElementById('x').contentWindow。