当前位置:首页 > 日记 > 正文

JavaScript中的子窗口与父窗口的互相调用问题

JavaScript中的子窗口与父窗口的互相调用问题

注意:要用open打开才行,如果用openModal打开则会访问不到opener.

open的参数:

window.open('page.html','newwindow','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no') 

参数说明

'page.html' 弹出窗口的文件名; 'newwindow' 弹出的新窗口的名字,非必须,可用空''代替; 

height=100 高度; width=400 宽度; top=0 窗口距离屏幕上方的象素值; left=0 窗口距离屏幕左侧的象素值; 

toolbar=no 是否显示工具栏,yes为显示; menubar,scrollbars 表示菜单栏和滚动栏;

resizable=no 是否允许改变窗口大小,yes为允许; location=no 是否显示地址栏,yes为允许;

status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;

1、从子窗口中往父窗口传值

如父页面有一个控制的id是choosedProvider,那么这样可以把值传给父页面:

opener.document.getElementById("choosedProvider").value="Tom"; 

2、从父窗口传值给子窗口,如子窗口中有id为T的控件,此时可以用如下传值:

<script> var newWindow; function openWindow(url){ newWindow = window.open(“new.htm”, "", "width=400,height=300 "); } function changeChild(){ newWindow.document.getElementById("T").value="我变了"; } </script> 

3、子窗口关闭并刷新父口,这里有两种方式:

1)         子窗口关闭时关闭父窗口:

opener.location.reload(); window.close();  

2)        父窗口去检测,子窗口是否已经关闭了,在设定的一段时间之后自动刷新:

<script> var newWindow; var timer; function openWindow(url) {     newWindow = window.open(url, "", "width=400,height=300,resizable=yes");     timer = setInterval("updateAfterClose()", 1000); } function updateAfterClose() {     //父窗口去检测子窗口是否关闭,然后通过自我刷新,而不是子窗口去刷新父窗口     if(newWindow.closed == true) {     clearInterval(timer);     self.location.reload(); // 主窗口刷新     return;     } } </script> 

4、父窗口关闭的时候关闭子窗口。这个就是用方法去检测父窗口的onunload事件:

<script> var newWindow; function openWindow(url) { newWindow = window.open(url, "", "width=400,height=300,resizable=yes");  } function closeChild() { newWindow.close(); } </script> 

在body加上onunload事件:

<body onunload="closeChild()">  

5、子窗口中关闭父窗口,这个功能可能相对要少用一点:

<script> function closeParent() { opener.close(); } </script> <input type=button value="关闭父窗口" onclick=closeParent()> 

以上所述是小编给大家介绍的JavaScript中的子窗口与父窗口的互相调用问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

相关文章

JavaScript 栈的详解及实例代码

JavaScript 栈的详解及实例代码

实例代码,详解,电脑软件,JavaScript,JavaScript 栈栈是一种遵从先进后出(LIFO)原则的有序集合。 新添加或待删除的元素都保存在栈的末尾,称作栈顶,另一端就叫栈底。 在栈里,新元素都靠近栈顶,旧元素都接近栈底昨天因为有点事没有更新,今天打算给大…

qq安全中心锁定游戏教程

qq安全中心锁定游戏教程

安全中心,锁定,教程,方法,游戏,  怎么让你玩的腾讯游戏更加安全?qq安全中心游戏锁就是你开启游戏之后每次都要输入一次验证码,不输人验证码是进不去的,然而验证码都在你的手机QQ安全中心上,所以非常安全。今天小编给你分享一下qq安全中心锁…

怎么利用c语言创建excel文件利用c

怎么利用c语言创建excel文件利用c

文件,语言,方法,电脑软件,excel,  要利用c语言创建excel文件在把它导入excel其实很简单,下面就和小编一起看看怎么利用c语言创建excel文件,希望对你有帮助!利用c语言创建excel文件的方法如果数据简单的话,可以使用CSV(逗号分隔值)格式的文件…

jquery dialog获取焦点的方法

jquery dialog获取焦点的方法

方法,获取焦点,电脑软件,jquery,dialog,本文实例讲述了jquery dialog获取焦点的方法。分享给大家供大家参考,具体如下:$(document).ready(function () { //初始化新增申请对话框 $("#addBusinessTrip").dialog({ open: function (e…

photoshop5.0软件怎么抠图

photoshop5.0软件怎么抠图

抠图,方法,电脑软件,  抠图是很多同学都想要学习的,在photoshop中抠图的方法太多了。其实这个也不算太难,下面就让小编告诉你photoshop5.0软件怎么抠图的方法,一起学习吧。photoshop5.0软件抠图的方法开启PS5软件,打开需要抠图的素材。(文件>…

excel2010进行分类汇总的方法步骤

excel2010进行分类汇总的方法步骤

方法,步骤,分类,进行分类,电脑软件,  分类汇总,就是对数据按种类进行快速汇总。在分类汇总前,需要对数据进行排序,让同类内容有效组织在一起。下面让小编为你带来excel2010分类汇总的方法,希望对你有帮助!excel2010分类汇总的方法步骤1.打开Ex…

QQ空间美文精彩说说集锦

QQ空间美文精彩说说集锦

空间,美文,精彩,集锦,新篇,  在QQ空间中会看到很多么唯美的说说句子,i是否也想发表一些从而赢得大家的点赞关注呢?QQ空间美文精彩说说有哪些的呢?本文是小编整理QQ空间美文精彩说说的资料,仅供参考。QQ空间美文精彩说说【经典篇】一、 楼底…

Http请求长时间等待无结果返回解决

Http请求长时间等待无结果返回解决

等待,请求,长时间,解决办法,电脑软件,Http请求长时间等待无结果返回解决办法今天遇到一个奇葩的问题,这个程序主要是用于调用接口搜集数据的,但是,发生了不好的事情就是服务器中启动的进程非常多,一直无法结束,没办法只能采用kill的方法,将所有的…

excel怎么批量删除单元格数据excel

excel怎么批量删除单元格数据excel

批量删除,数据,方法,步骤,单元格,  在输入excel后才发现很多数据是无效的,哎,真麻烦,难道又要一个个删除?其实并不用,小编马上就告诉你怎么批量删除单元格的数据。excel批量删除单元格数据的步骤①打开Excel2013,导入数据源,我们要把红色单元格…

wps ppt怎么制作流程图wps ppt做流

wps ppt怎么制作流程图wps ppt做流

流程图,方法,制作教程,电脑软件,wps,  平时工作中,我们都会使用wps的ppt制作流程图。做出来的流程图直观又简洁,下面小编就为你提供wps ppt制作流程图的方法,希望对你有帮助!wps ppt制作流程图的方法安装Powerpoint软件,并打开,新建一个空白文…

wps如何做数据透视表图文教程

wps如何做数据透视表图文教程

数据,图文教程,方法,透视,如何做,  为了让我们更好地分析数据,我们一般需要在wps表格中制作数据透视表,对于新手来说可能不知道如何制作透视图。下面就让小编告诉你在wps中制作数据透视表的方法,希望对大家有所帮助。wps做数据透视表的方法w…

js实现适配不同的屏幕大小

js实现适配不同的屏幕大小

屏幕,大小,电脑软件,js,话不多说,请看代码:// 通过js适配不同的屏幕大小(function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = fu…