实现window.open方式向父窗口返回值

lin8800020 2010-12-15 08:25:55
如何实现在不使用window.showModalDialog 的情况下用 window.open方式 向父窗口返回值。

例如:
页面A.htm 用 window.open方式弹出页面 B.htm 。
在页面B.htm上选择一个值,确定关闭窗口后将选择的这个值返回到父窗口A.htm。
A.htm得到返回的值后,给本页面上的文本框赋值。

1.在A.htm里建一个函数:

function sele(NO){ //NO为返回值
alert(NO);//可以直接赋值给表单
var re= new Array();//如果需返回多个变量,则采用数组把各个变量分开
re=NO.split(",");
form1.feild1.value=re[0];
form1.feild2.value=re[1];//form1为本面表单名,feild1、2为表单元素
}

<form name="form1" action="....">
<input name="feild1">
<input name="feild1">
</form>

2.在B,htm 加以下代码
function re(NOre){
window.opener.sele(NOre);
window.close();"
}

<form name="form1" action="....">
<input type="button" value="返回值" onclick="re("把需返回的变量")">
</form>

...全文
1602 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin8800020 2010-12-16
  • 打赏
  • 举报
回复
window.open与window.showModalDialog、层(div)有其独特的优势,这里说的是window.open返回值。
1.与window.open返回值有关的技巧请大家多多交流。
2.与window.open返回值无关的就不必在这时交流了。
3.另外,通过给父窗口表单或单元赋值获得的,也不必在这里交流,因为网上搜出很多这方面的例子。
flyerwing 2010-12-15
  • 打赏
  • 举报
回复
var obj=window.dialogArguments;
-------------------------------
if(window.opener)
var obj=window.opener.document.getElementByiD("XXX");
obj.value="xxx";
------------------------------
zhjackey 2010-12-15
  • 打赏
  • 举报
回复
楼主是来散分的,我是来接分的,这种情况也可以用div模拟窗口来实现嘛
happy664618843 2010-12-15
  • 打赏
  • 举报
回复
opener.document.getElementById().value;
最好用window.showModalDialog();可以传数组 子页面根据数组索引取值就可以了
或者添加到对象中
var obj={};
obj.name="";
obj.ID=01;
获取
var obj=window.dialogArguments;
obj.name;
hch126163 2010-12-15
  • 打赏
  • 举报
回复




opener 访问父窗口!

可以在父窗口,定义一个方法,调用父窗口方法就可以了!

传值,多个值可以用json!
wuyuanyue2 2010-12-15
  • 打赏
  • 举报
回复
可以这样啊 if(window.opener)window.opener.document.getElementById("theTextAreaId").value = value;









-----------------------------------
http://www.jiemengwu.com/ 解梦屋 http://www.phpzy.com/php/

绿色php资源
softwarexiang120 2010-12-15
  • 打赏
  • 举报
回复
在子窗口中直接是用opener.document.getElementById('父窗口中控件ID')就可以顺利得到父窗体控件对象了。
lin8800020 2010-12-15
  • 打赏
  • 举报
回复
有更好的办法吗?
liuzuowei007 2010-12-15
  • 打赏
  • 举报
回复
这样操作函数的方式返回值是局部的
在函数体外面是访问不到的
要是用全局变量的话安全性和效率就降低了
所以我感觉没实用价值。。
lin8800020 2010-12-15
  • 打赏
  • 举报
回复
我在网上查了很多内容,都是不啥理想的,后来发现在子窗口中可以运行父窗口的函数,而且还可以给父窗口函数赋值,于是乎豁然开朗。其这利用这一功能完全可以取代window.showModalDialog的返回值的功能。而且利用数组,可以灵活地返回和分解多个变量,非常实用。
十一文 2010-12-15
  • 打赏
  • 举报
回复
学习哈 这样的方式我没用过

呵呵
人间有妖 2010-12-15
  • 打赏
  • 举报
回复
returnvalue把模态窗体的值传到父传体

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧