javascript 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/网页特效">
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.111cn.net";
子窗口调用父窗口:parent.document.getelementbyid("parent_document_object").object_attribute = attribute_value
例: parent.document.getelementbyid("myh1").innerhtml = "http://111cn.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.111cn.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://111cn.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" 。(http://chenling1018.blog.163.com/blog/static/1480254200811891041694/)
三、在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-08-24 09:40:01

javascript iframe 父窗口和子窗口实现代码的相关文章

iframe 父窗口和子窗口相互的调用方法集锦_javascript技巧

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

在同一个页面父窗口打开子窗口,动态无刷新提交(1/2)

在同一个页面父窗口打开子窗口,动态无刷新提交,超炫基于jquery ajax提交,兼容ie7+,火狐.. 基于父窗口打开子窗口,效果超炫,用jquery ajax 动态无刷新提交... 下面先来分析代码:父窗体页面代码 <div><a href="网页特效:void(0);" url='openerweb.asp教程x' id="aparent">编辑</a><div id="blockoptip" st

jQuery父窗口与子窗口通信

$("#父窗口元素ID",window.parent.document);  对应javascript版本为window.parent.document.getElementByIdx_x("父窗口元素ID"): 取父窗口的元素方法:$(selector, window.parent.document); 那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document); 类似的,取其它窗口的方法大同小异 $

JavaScript新窗口与子窗口之间的传值

 这篇文章主要介绍了JavaScript新窗口与子窗口之间的传值,需要的朋友可以参考下 window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+  window.open(pageURL,name,parameters)  pageURL 为子窗口路径  name 弹出窗口的名字  parameters 为窗口参数(各参数用逗号分隔)  alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后  alwa

Chrome下ifame父窗口调用子窗口的问题示例探讨

 这篇文章主要介绍了Chrome下ifame父窗口调用子窗口的问题,需要的朋友可以参考下 项目中遇到的一个浏览器不兼容问题:    在IE和Firefox下直接在ifame框架页的父窗口用子窗口的name调用子窗口的js函数都好使,在Chrome下不好使.   代码如下: <frameset rows="108,*,30" border="0" frameSpacing="0" frameBorder="0"> 

MFC父窗口控制子窗口CListCtrl控件刷新的问题

问题描述 MFC父窗口控制子窗口CListCtrl控件刷新的问题 目标:父窗口单击按钮,向子窗口发送一个消息:子窗口的消息处理函数中,调用列表显示函数来刷新列表数据. 我的代码: // 父窗口void CDlg4::OnButtonClick(){ CDlg43 *dlg = new CDlg43(); dlg->Create(IDD_DIALOG_43this); if (NULL == dlg) { AfxMessageBox(""failed""); d

servlet-关于父窗口和子窗口的request 的问题(可以传值吗??)

问题描述 关于父窗口和子窗口的request 的问题(可以传值吗??) 问题是这样的 我在login.jsp提交表单到一个servlet 然后在这个servlet中将一个list存入 request,再跳转到index.jsp(是用frameset写的 引入了show.jsp).本来我是在show.jsp 中获取数据.可是在index.jsp看不了show.jsp数据 因为login.jsp servlet index.jsp 才是同一了请求 现在我要在index.jsp看到show.jsp 的

Chrome下ifame父窗口调用子窗口的问题示例探讨_javascript技巧

项目中遇到的一个浏览器不兼容问题: 在IE和Firefox下直接在ifame框架页的父窗口用子窗口的name调用子窗口的js函数都好使,在Chrome下不好使. 复制代码 代码如下: <frameset rows="108,*,30" border="0" frameSpacing="0" frameBorder="0"> <frame name="header" scrolling=&q

vc++-mfc父窗口修改子窗口变量的问题

问题描述 mfc父窗口修改子窗口变量的问题 NewDlg dlg; CString str("hello"); dlg.textNum.SetWindowText(str); dlg.DoModal(); NewDlg 是弹出窗口的类,textNum是它的一个文本域,为什么不能这样修改这个文本域的值 解决方案 MFC操作父窗口的子控件MFC操作父窗口的子控件MFC子窗口 解决方案二: dlg还没有DoModal创建,你就SetWindowText了,SetWindowText需要窗口创