在web開(kāi)發(fā)中,經(jīng)常會(huì)用到iframe,難免會(huì)碰到需要在父窗口中使用iframe中的元素、或者在iframe框架中使用父窗口的元素
js
在父窗口中獲取iframe中的元素
1、
格式:window.frames["iframe的name值"].document.getElementByIdx_x("iframe中控件的ID").click();
實(shí)例:window.frames["ifm"].document.getElementByIdx_x("btnOk").click();
2、
格式:
var obj=document.getElementByIdx_x("iframe的name").contentWindow;
var ifmObj=obj.document.getElementByIdx_x("iframe中控件的ID");
ifmObj.click();
實(shí)例:
var obj=document.getElementByIdx_x("ifm").contentWindow;
var ifmObj=obj.document.getElementByIdx_x("btnOk");
ifmObj.click();
在iframe中獲取父窗口的元素
格式:window.parent.document.getElementByIdx_x("父窗口的元素ID").click();
實(shí)例:window.parent.document.getElementByIdx_x("btnOk").click();
jquery
在父窗口中獲取iframe中的元素
1、
格式:$("#iframe的ID").contents().find("#iframe中的控件ID").click();//jquery 方法1
實(shí)例:$("#ifm").contents().find("#btnOk").click();//jquery 方法1
2、
格式:$("#iframe中的控件ID",document.frames("frame的name").document).click();//jquery 方法2
實(shí)例:$("#btnOk",document.frames("ifm").document).click();//jquery 方法2
在iframe中獲取父窗口的元素
格式:$('#父窗口中的元素ID', parent.document).click();
實(shí)例:$('#btnOk', parent.document).click();
一、父窗口調(diào)用iframe子窗口方法
1、HTML語(yǔ)法:<iframe name="myFrame" src="child.html"></iframe>
2、父窗口調(diào)用子窗口:myFrame.window.functionName();
3、子窗品調(diào)用父窗口:parent.functionName();
簡(jiǎn)單地說(shuō),也就是在子窗口中調(diào)用的變量或函數(shù)前加個(gè)parent.就行
4、父窗口頁(yè)面源碼:
5、子窗口頁(yè)面:
二、iframe 父窗口和子窗口相互的調(diào)用方法
1、IE中使用方法:
父窗口調(diào)用子窗口:iframe_ID.iframe_document_object.object_attribute = attribute_value
例子:onClick="iframe_text.myH1.innerText='http://www.pint.com';"
子窗口調(diào)用父窗口:parent.parent_document_object.object_attribute = attribute_value
例子:onclick="parent.myH1.innerText='http://www.pint.com';"
2、Firefox中使用方法:
上面在IE下沒(méi)有問(wèn)題,但在firefox下不正常。在firefox下,應(yīng)該是如下調(diào)用方法:
父窗口調(diào)用子窗口:window.frames["iframe_ID"].document.getElementById("iframe_document_object"-).object_attribute = attribute_value
例: window.frames["iframe_text"].document.getElementById("myH1").innerHTML= "http://hi.jb51.net";
子窗口調(diào)用父窗口:parent.document.getElementById("parent_document_object").object_attribute = attribute_value
例: parent.document.getElementById("myH1").innerHTML = "http://jb51.net";
3、完整的例子
test.htm
frame_test.htm
test.htm里面firefox下訪問(wèn)iframe 必須用name,不能用id,所以要改為name="iframe_test" 。(http://chenling1018.blog.163.com/blog/static/1480254200811891041694/)
三、在c#中如何動(dòng)態(tài)改變iframe的src值,動(dòng)態(tài)指向一個(gè)網(wǎng)頁(yè)
1)如果是javascript腳本
給iframe加一個(gè)ID如<iframe id=frmList……
在腳本寫(xiě)
frmList.document.location=strNewUrl
2)如果是后臺(tái)程序
給iframe加一個(gè)ID,再加上runat=server 如<iframe id=frmList runat=server ……
在程序里寫(xiě)
frmList.Attributes.Add("src",strNewUrl);
聯(lián)系客服