文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

子窗体与父窗体的通讯

2023-06-03 01:12

关注

父窗体与子窗体通讯
A通过window.open()方式打开B,B如何在A的下拉列表框中增加一个选项????
window.opener.document.getElementbyId("select").options.add(new Option("display","value"))

window.opener 返回的是对父窗体的一个引用,通过它可以控制父窗体,常见有:

[@more@]

设置父页面背景
window.opener.document.body.backgroundColor = "red" ;

刷新父页面
window.opener.location.reload();

设置父页面文本框的值
window.opener.document.getElementById("txtUserName").value = "张三" ;

设置父页面单选按钮的状态
window.opener.document.getElementById("rdoMan").checked = true ;

显示父页面的层(利用层的透明属性可以制作蒙板效果)
window.opener.document.getElementById("divMask").style.display = "block" ;

让父页面应用滤镜效果 -- 应用灰度滤镜
window.opener.document.body.style.filter = "gray()"

function addOptions(){
//构造一个option选项
var op = new Option("新浪","www.sina.com.cn");
//自己窗口的select选项中再添加一项
window.document.getElementById("newUrl").options.add(op);

//子窗体获得父窗体中定义的变量
//alert(window.opener.obj);

//子窗体为父窗体的文本框赋值
window.opener.document.getElementById("username").value="accp";
//子窗体控制父窗体中表单的单选按钮 window.opener.document.getElementById("man").checked=true;

//子窗体控制父窗体中表单的下拉列表框
//window.opener.documenet.getElementById("myUrl").options.length = 0; //window.opener.document.getElementById("myUrl").options[i] = op ;
//????????????子窗体怎样取得父窗体中的下拉列表框的选项
//答案就是通过window.opener.document创建节点的方式来解决。


//创建一个父窗体的Option节点
var op2 = window.opener.document.createElement("option");
//创建一个父窗体的文本节点
var txtNode = window.opener.document.createTextNode("新浪");
//为父窗体的Option节点添加属性
op2.setAttribute("value","www.sina.com.cn");
//将父窗体的文本节点做为子节点添加到Option节点上
op2.appendChild(txtNode);
//最后将创建好的Option节点添加到父窗体的options集合中 window.opener.document.getElementById("myUrl").options.appendChild(op2) ;

//暂停后面的关闭自己操作,观看父窗口的变化
alert();

其实在JS中认为父窗体与子窗体优先级不一样,子窗体不用将opener置空也能无弹框关闭自己窗口,但是父窗体认为有很重要内容,需要客户确定,所以就提示如果将opener置空,则优先级变为普通窗休,没有父窗体,关闭时不用弹框建议将opener置空,否则opener在达到一定数量后浏览器才清空。

window.opener = null ;
self.close();
}

注意:如果是showModalDialog方法打开的子窗口,控制父窗体应该这样做:
window.showModalDialog('default2.aspx',
{doc:document,win:parent},
'...');
dialogArguments.doc.all.Text1.value = "123";

需要注意的2点
1:showModalDialog的第二个参数很关键
2:子窗口的dialogArguments对象来控制很重要

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ppjava2009/archive/2010/02/24/5323312.aspx

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯