1、iframe裏面的頁面調用父窗口,左右窗口js函數的方法javascript
iframe裏面的頁面調用父窗口,左右窗口js函數的方法
實現iframe內部頁面直接調用該iframe所屬父窗口自定義函數的方法。
好比有A窗口,A內有個IFRAME B,B裏面的裝載的是C頁面,這時C要直接調用A裏面的一個自定義函數AFUN();
那麼只要在C頁面中寫以下JS函數就能夠了:
window.parent.AFUN();
若是AFUN()有參數也能夠直接傳遞合適的參數進去。
例如:
修改父窗口控件屬性
window.parent.document.getElementById('frmright').src=window.parent.document.getElementById('frmrightsrc').value;
調用父窗口函數
window.parent.POPUP('bigFram'); html
父窗口調用iframe子窗口方法
<iframe name="myFrame" src="child.html"></iframe>
myFrame.window.functionName();
iframe子窗口調用父窗口方法
parent.functionName();java
////////////////////////////////////
用js互相調用iframe頁面內的js函數
一個html頁面,分紅左右兩塊,左邊爲導航欄,右邊爲須要顯示的內容,代碼以下:
左欄的代碼爲:
<IFRAME frameBorder=0 id=frmTitleLeft name=framLeft src="left.html" style="HEIGHT: 100%; width:180px;">
鏈接到left.html
好比右欄中有一個函數right(),我要在左欄的連接中調用right()函數,該如何實現呢
1,首先leftframe是內嵌在容器頁index.html中的,所以須要先返回到index這一級別,並取得rightframe對象
var frames=window.parent.window.document.getElementById("frameid");
2,要能執行其頁面中的函數,必需要得到window對象,這裏有一個重要的對象contentWindow,得到這個對象,便可執行其中的函數了,如
frames.contentWindow.right();
以上代碼兼容IE6,Firefox3,chrome2.0,均成功經過測試,IE7沒試過,不過應該沒問題。
3.例如:
window.parent.document.getElementById('leftFrame').contentWindow.JSMenu('MenuUl'+Sid);
window.parent.frames["leftFrame"].JSMenu('MenuUl'+Sid);chrome
2、javascript--iframe的JS方法,用法!contentWindow 、parent、top、onload
瀏覽器
1、在使用iframe的頁面,要操做這個iframe裏面的DOM元素能夠用:服務器
contentWindow、contentDocument(測試的時候chrom瀏覽器,要在服務器環境下)框架
1.先獲取iframe裏面的window對象,再經過這個對象,獲取到裏面的DOM元素函數
例子:post
var ifr = document.getElementById("iframe"); ifr.contentWindow.document.getElementById("XXXXX") <iframe src="a.html" id=""></iframe>
ifr.contentWindow 這裏,返回的是iframe的window對象,因此後面能夠接着調用document方法,再接着調用getElementByTagName。那麼就能夠對iframe裏面的元素進行操做了。測試
2、在iframe本頁面,要操做這個iframe的父頁面的DOM元素(即嵌套這個iframe的頁面)能夠用:
window.parent、window.top(這裏的TOP是獲取的頂層,即有多層嵌套iframe的時候使用)
var ifr = document.getElementByTagName("iframe"); ifr.parent.document.getElementById("XXXXX") <iframe src="a.html" id=""></iframe>
3、onload事件
非IE下用法
ifr.onload = function(){ //SOMETHING }
IE下,須要綁定
ifr.attachEvent("onload",function(){ //something })
3、Js中的window.parent ,window.top,window.self詳解
在應用有frameset或者iframe的頁面時,parent是父窗口,top是最頂級父窗口(有的窗口中套了好幾層frameset或者iframe),self是當前窗口, opener是用open方法打開當前窗口的那個窗口。
window : 表明當前窗體
self : 也表明當前窗體
window.self
功能:是對當前窗口自身的引用。它和window屬性是等價的。
語法:window.self
注:window、self、window.self是等價的。
window.top
功能:返回頂層窗口,即瀏覽器窗口。
語法:window.top
注:若是窗口自己就是頂層窗口,top屬性返回的是對自身的引用。
window.parent
功能:返回父窗口。
語法:window.parent
注:若是窗口自己是頂層窗口,parent屬性返回的是對自身的引用。
在框架網頁中,通常父窗口就是頂層窗口,但若是框架中還有框架,父窗口和頂層窗口就不必定相同了。
判斷當前窗口是否在一個框架中:
<script type="text/javascript">
var b = window.top!=window.self;
document.write( "當前窗口是否在一個框架中:"+b );
</script>
你應當將框架視爲窗口中的不一樣區域,框架是瀏覽器窗口中特定的部分。一個瀏覽器窗口能夠根據你的須要分紅任意多的框架,一個單個的框架也能夠分紅其它多個框架,即所謂的嵌套框架。