js window.opener 子页面 父页面 传值

js window.opener 子页面 父页面 传值,第1张

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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10128570.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存