
1、建立父级页面,首先建立一个父级页面parenthtml,代码如图,一个pop函数方法,一个链接到childhtml的iframe标签;
2、建立子页面,再新建一个childhtml页面,如图,展示一个id=link的div标签,和link的点击事件,因为是调用父级方法,所以需要用到windowparentpop()方法。
3、预览页面,预览页面,可明显看到parenthtml里面的iframe框架,指向的就是child子页面
4、错误提示,点击页面中“调用父级pop方法”的文字链,会提示错误,这是因为没配置好域名等相关设置。
5、站点配置,打开iis,右键iframe文件夹——“管理文件夹”——“浏览”;即可打开本地测试地址;(如小伙伴没配置iis,需要先配置iis建立站点)
6、成功调用父级方法,再次点击“调用父级pop方法”的文字链,即可成功d出提示。
父窗口代码(parenthtml)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 10 Transitional//EN" ">
<!DOCTYPE html>
<html>
<head>
<title>子窗口</title>
<script type="text/javascript">
documentwrite(windowparentdocumentURL);
</script>
</head>
<body>
</body>
</html><!DOCTYPE html>
<html>
<head>
<title>父窗口</title>
</head>
<body>
<-- 需要与子窗口保持在同一目录下,或修改此处连接地址 -->
<iframe src="childhtml" style="width:500px;height:500px;"></iframe>
</body>
</html>
这个需要在IE中查看,如果要用谷歌浏览器,需要部署到服务器上。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 40 Transitional//EN">
<HTML>
<HEAD>
<TITLE>New Document </TITLE>
<META content="EditPlus" name="Generator">
<META content="" name="Author">
<META content="" name="keywords">
<META content="窗口,页面,对话框,方法,参数" name="description">
<script language="javascript">
<!--
function openChild(){
var aa = documentgetElementById("txt9")value;
var k = windowshowModalDialog("childhtml",aa,"dialogWidth:335px;status:no;dialogHeight:300px");
if(k != null)
documentgetElementById("txt11")value = k;
}
//-->
</script>
</HEAD>
<BODY>
<FONT face="宋体"></FONT>
<br>
传递到父窗口的值:<input id="txt9" type="text" value="33333" name="txt9"><br>
返回的值:<input id="txt11" type="text" name="txt11"><br>
子窗口设置的值:<input id="txt10" type="text" name="txt10"><br>
<input id="Button1" onclick="openChild()" type="button" value="openChild" name="Button1">
</BODY>
</HTML>
childhtml
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 40 Transitional//EN">
<HTML>
<HEAD>
<TITLE>New Document </TITLE>
<META content="1、建立父级页面,首先建立一个父级页面parenthtml,代码如图,一个pop函数方法,一个链接到childhtml的iframe标签;2、建立子页面,再新建一个childhtml页面,如图,展示一个id=link的div标签,和link" name="Generator">
<META content="" name="Author">
<META content="" name="Keywords">
<META content="" name="Description">
<meta >
模态对话框,必须在DoModal之前传递过去,否则涉及界面的数据是无法传递的。
非模态对话框,通过Create创建的,只要在Create之中声明了明确的父子关系(参数中有一项),那么直接GetParent就可以获取父窗口指针了,之后通过类型强制转换,就可以访问父对话框的数据了。
模态对话框,通常是在子对话框建立自定义成员变量,然后这样的代码传递:
CxxDlg dlg;//子对话框dlgm_1 = xxx;//xxx是父对话框的数据
dlgm_2 = yyy;
if(IDOK==dlgDoModal())
{
xxx = dlgm_1;//传递回来,需要在子的OnOK里面完成对m_1的赋值
}
经测试,代码没问题,选择的id和名称会返回父窗口。
要注意的是,需要在真实的web服务器环境中(IIS或Apache等)用windowopen打开的子窗口其opener对象才有效,如果是在本地运行的则无效。
用JAVASCRIPTd出模式窗口
1、不能使用windowparent
Windowparent是用来在frame中进行 *** 作的,在对话框中不能用来 *** 作父窗口对象
2、正确的做法
调用modaldialog时通过传参数的方式 *** 作
例:
需求
父窗口页面为ahtml 子窗口页面为bhtml。ahtml中有文本框id为test1,在打开的对话框中点击按钮,将ahtml的文本框值改为“子窗口值”。
实现
打开对话框时把test1作为参数传给子窗口,在子窗口中获取参数,将参数对象(即ahtml中传过来的text对象)的value属性值设置为“子窗口值”
注意:这里只能传id,不能传name
ahtml代码如下
<html>
<head>
<meta >
以上就是关于js window.opener 子页面 父页面 传值全部的内容,包括:js window.opener 子页面 父页面 传值、js d出窗口 选值后提交回父级页(不刷新)的文本框、js 获取父 url等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)