父窗口调用iframe子窗口方法

一、父窗口调用iframe子窗口方法 
1、HTML语法:<iframe name="myFrame" src="child.html"></iframe> 
2、父窗口调用子窗口:myFrame.window.functionName(); 
3、子窗品调用父窗口:parent.functionName(); 
简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行 
4、父窗口页面源码: 
复制代码 代码如下:
<html> 
<head> 
<script type="text/javascript"> 
function say() { 
alert("parent.html------>I‘m at parent.html"); 

function callChild() 

//document.frames("myFrame").f1(); 
myFrame.window.say(); 

</script> 
</head> 
<body> 
<input type=button value="调用child.html中的函数say()" onclick="callChild()"> 
<iframe name="myFrame" src="child.html"></iframe> 
</body> 
</html>

5、子窗口页面: 
复制代码 代码如下:
<html> 
<head> 
<script type="text/javascript"> 
function say() 

alert("child.html--->I‘m at child.html"); 

function callParent() { 
parent.say(); 

</script> 
</head> 
<body> 
<input type=button value="调用parent.html中的say()函数" onclick="callParent()"> 
</body> 
</html>

二、iframe 父窗口和子窗口相互的调用方法 
1、IE中使用方法: 
父窗口调用子窗口:iframe_ID.iframe_document_object.object_attribute = attribute_value 
例子:onClick="iframe_text.myH1.innerText=‘http://www.pint.com‘;" 
子窗口调用父窗口:parent.parent_document_object.object_attribute = attribute_value 
例子:onclick="parent.myH1.innerText=‘http://www.pint.com‘;" 
2、Firefox中使用方法: 
上面在IE下没有问题,但在firefox下不正常。在firefox下,应该是如下调用方法: 
父窗口调用子窗口: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/"; 
子窗口调用父窗口:parent.document.getElementById("parent_document_object").object_attribute = attribute_value 
例: parent.document.getElementById("myH1").innerHTML = "http://jb51.net/"; 
3、完整的例子 
test.htm 
复制代码 代码如下:
<HTML> 
<HEAD> 
<TITLE> Test Page </TITLE> 
<script src="prototype-1.4.0.js"></script> 
<script language="javascript"> 
function show() 

window.frames["iframe_text"].document.getElementById("myH1").innerHTML = "http://hi.jb51.net/"; 

</script> 
</HEAD> 
<BODY> 
<iframe height="350" width="600" src="iframe_test.htm" name="iframe_text"></iframe> 
<form action="" method="post"> 
<input name="haha" id="haha" type="text" maxlength="30" value="haha" /> 
<br /> 
<textarea cols="50" rows="5" id="getAttributeMethod"></textarea> 
<input type="button" onClick="show();" value="提交"/> 
</form> 
<h1 id="myH1">d</h1> 
</BODY> 
</HTML>

frame_test.htm 
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>无标题文档</title> 
</head> 
<script language="javascript"> 
function show() 

parent.document.getElementById("myH1").innerHTML = http://jb51.net/

</script> 
<body> 
<h1 id="myH1">ha</h1> 
<form action="" method="post"> 
<input name="abc" id="abc" type="text" maxlength="30" value="abc" /> 
<br /> 
<textarea cols="50" rows="10" id="text"></textarea> 
<br /> 
<input type="button" value="提交" onclick="show();"/> 
</form> 
</body> 
</html>

test.htm里面firefox下访问iframe 必须用name,不能用id,所以要改为name="iframe_test" 三、在c#中如何动态改变iframe的src值,动态指向一个网页 
1)如果是javascript脚本 
给iframe加一个ID如<iframe id=frmList…… 
在脚本写 
frmList.document.location=strNewUrl 
2)如果是后台程序 
给iframe加一个ID,再加上runat=server 如<iframe id=frmList runat=server …… 
在程序里写 
frmList.Attributes.Add("src",strNewUrl);

时间: 2024-10-11 17:05:17

父窗口调用iframe子窗口方法的相关文章

iframe子页面js调用父页面js函数/父页面调用Iframe子页面中js方法

1.假设当前页面为a.html, iframe的src页面为b.html,其代码如下: 1 <span class="tag"><html> 2 <br></span><span class="tag"><head> 3 <br></span><span class="tag"><title></span><s

父页面调用iframe子页面js方法

<iframe name="demoIframe" src="demo.html"></iframe> demo.html : <head> <script> function query(){ alert(1); } </script> </head> 父页面调用: window.demoIframe.document.query();

iframe子窗口父窗口方法调用和元素获取

1.父窗口调用iframe里面的方法 iframename.window.method(); 2.子窗口调用父窗口方法 parent.window.method(); 3.父窗口获取iframe里面元素 $("#id",document.frames["iframename"].document); 4.子窗口获取父窗口元素 $("#id",parent.document);

window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口

window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口 项目中经常遇到一个业务逻辑:在A窗口中打开B窗口,在B窗口中操作完以后关闭B窗口,同时自动刷新A窗口(或局部更新A窗口)(或将数据传回A窗口) 以下是从实际项目中截取出来和window.open()方法相关的代码,业务逻辑如下: 1. 点击父窗口的div标签(id="addMatchSchedule"),出发点击事件,打开子窗口: 2. 点击子窗口的button按钮,触发点击时间,即调用addSchduleI

JQuery调用iframe子页面函数/对象的方法例子

父页面有个ID为mainfrm.name为Iframe1的iframe,iframe连接b.html,该页面有个函数test 在父页面调用b.html的test方法为: $("#mainfrm")[0].contentWindow.test(); 或者 this.frames["Iframe1"].doQuery(); 在当前弹出的子页面中打开另一个打开页面中的函数,例如在弹出的edit.html页面中调用dataList.html页面中的函数test parent

主窗口刷新,子窗口闪烁

问题:主窗口刷新,子窗口闪烁 解决方案:主窗口创建时,传WS_CLIPCHILDREN

Duilib中创建子窗口后,子窗口销毁的问题

自己在学习Duilib时,学习ListDemo中的右键生成菜单,然后当菜单被点击活着失去焦点时,这个菜单窗口如何销毁的问题. 1.在这里,创建菜单时使用了子窗口的概念,创建时,使用了WS_EX_TOOLWINDOW类型,表示是一个工具栏窗口. 2.这个菜单窗口有自己的消息处理函数HandleMessage.第一次的尝试是调用CWindowWnd中的Close函数,查看了这个函数的源码,发现其中是使用PostMessage给自己发送了一个WM_CLOSE的消息,然后在HandleMessage中拦

父页面操作iframe子页面的安全漏洞及跨域限制问题

一.父子交互的跨域限制 同域情况下,父页面和子页面可以通过iframe.contentDocument或者parent.document来交互(彼此做DOM操作等,如父页面往子页面注入css). 跨域情况下,就会有限制,无法相互操作. [解决办法] 1.主域不同 没招 2.主域相同,子域不同 以父(a.baidu.com)子(b.baidu.com)为例: 这俩页面相互操作,要是想解决跨域限制,必须设置一个共同的主域,即document.domain="baidu.com" 二.禁止父

父页面向iframe子页面传递参数

父页面: <iframe src="video.html" width="100%" height="400" name="vedioiframe" style="border: none; overflow:hidden" scrolling="no" link="http://www.baidu.com/"></iframe> 子页面: v