当主页面关闭时关闭所有子窗口(Close all the child windows on unload of main page)
2010-06-25 17:14
721 查看
摘要:
我们常常会使用window.open的便利来实现很多常用的web功能。在应用中,我们能够用window.opener从子页面访问并操作父页面,但如果想通过父页面管理子页面,则需要在父页面里留下存根
(因为每个子页面只有一个父页面,每个父页面却可以有多个子页面)
本例使用数组来贮存一个父页面中的所有子页面,并可对其进行操作:
Demo:当父页面关闭时关闭其所有子页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Untitled Page</title> <mce:script type="text/javascript"><!-- var windowArray = new Array(); function openWindow(tabValue, selValue, colValue) { var functionReturn = true; try { var windowUrl = 'Default.aspx?TAB=' + tabValue + '&SEL=' + selValue + '&COL=' + colValue; var windowId = 'Hlink' + new Date().getTime(); var windowLeft = (screen.width) ? (screen.width-600)/2 : 100; var windowTop = (screen.height) ? (screen.height-500)/2 : 100; var windowFeatures = 'width=' + 600 + ',height=' + 500 + ',top=' + windowTop + ',left=' + windowLeft + ',scrollbars=auto,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no'; var windowRef = window.open(windowUrl, windowId, windowFeatures); windowArray[windowArray.length] = windowRef; } catch(ex) { alert(ex.message); functionReturn = false; } return functionReturn; } function closeAllWindows() { for (var i=windowArray.length-1; i>=0; i--) { if ( windowArray.length <= 0 ) break; var windowRef = windowArray[i]; if ( (windowRef != null) && (windowRef.closed == false) ) { windowRef.close(); } windowArray.pop(); } } function Button1_onclick() { openWindow('test','test','test'); } function Button2_onclick() { closeAllWindows(); } // --></mce:script> </head> <body> <p> <input id="Button2" type="button" value="close all child" onclick="return Button2_onclick()" /> <br /> <input id="Button1" type="button" value="open a child" onclick="return Button1_onclick()" /></p> </body> </html>
结束语:
关于window.open的用法,下面转载了博友阿君的文章,供大家参考:
window.open() 支持环境 JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 语法 window.open(pageURL,name,parameters) pageURL 子窗口路径 name 子窗口句柄 parameters 窗口参数(各参数用逗号分隔) 参数 | 取值范 | 说明 | alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后 alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上 depended | yes/no | 是否和父窗口同时关闭 directories | yes/no | Nav2和3的目录栏是否可见 height | pixel value | 窗口高度 hotkeys | yes/no | 在没有菜单栏的窗口中设置安全退出热键 innerHeight | pixel value | 窗口中文档的像素高度 innerWidth | pixel value | 窗口中文档的像素宽度 location | yes/no | 位置栏是否可见 menubar | yes/no | 菜单栏是否可见 outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度 outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度 resizable | yes/no | 窗口大小是否可调整 screenX | pixel value | 窗口距屏幕左边界的像素长度 screenY | pixel value | 窗口距屏幕上边界的像素长度 scrollbars | yes/no | 窗口是否可有滚动栏 titlebar | yes/no | 窗口题目栏是否可见 toolbar | yes/no | 窗口工具栏是否可见 Width | pixel value | 窗口的像素宽度 z-look | yes/no | 窗口被激活后是否可以浮在其它窗口之上
<mce:script language="javascript"><!-- function saveclose() { //form1.action='NewObject.asp' //Savaclose 函数作用: //提交页面,刷新主页面并关闭本页面 form1.submit(); window.opener.location.reload(); window.opener=null; window.close(); } // --></mce:script>
作者:LanceZhang
来
源:博客园
发布时
间:2008-10-07
相关文章推荐
- 当主页面关闭时关闭所有子窗口(Close all the child windows on unload of main page)
- JavaScript无提示关闭当前页面窗口,兼容IE/Firefox/Chrome (Close the current page window without confirm by JavaScript, support all browsers)
- JavaScript无提示关闭当前页面窗口,兼容IE/Firefox/Chrome (Close the current page window without confirm by JavaScript, support all browsers)
- "不是所有工作区中的窗口无法打开"错误消息(Not all of the Windows in the workspace could be open)
- Unit of things to show on the main page
- JavaScript PopUp and Redirect parent windows when close down(弹出窗口 关闭后主页面跳转)
- 提交页面出现提示:Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effe
- JS倒计时结束关闭页面:Scripts may close only the windows that were opened by it.
- scripts may close only the windows that were opened by it 浏览器JS控制无法关闭当前页面
- 【原】用使用JavaScript展开/折叠TreeView中所有节点(Expand and Collapse All Nodes of asp.net Treeview on the client with javascript)
- 使用JavaScript展开/折叠TreeView中所有节点(Expand and Collapse All Nodes of asp.net Treeview on the client with javascript)
- [JavaScript]让footer总是停留在页面的底部(footer all the way at the bottom of the page)
- js 关闭页面(Scripts may close only the windows that were opened by it.)
- Maximum number of things to show on the main page"
- 【C#】无损转换Image为Icon 【C#】组件发布:MessageTip,轻快型消息提示窗 【C#】给无窗口的进程发送消息 【手记】WebBrowser响应页面中的blank开新窗口及window.close关闭本窗体 【手记】调用Process.EnterDebugMode引发异常:并非所有引用的特权或组都分配给呼叫方 【C#】DataRowState演变备忘
- fancybox 关闭弹出窗口 parent.$.fancybox.close(); 无反应 fancybox 关闭弹出窗口父页面自动刷新,弹出子窗口前后事件
- 用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
- JAVA 关闭窗口的设置 DISPOSE_ON_CLOSE和EXIT_ON_CLOSE 的区别
- 判断页面关闭的方法 UNLOAD/onbeforeunload
- Title and close button are shown on the bottom of the window, SmartGWT