javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法


Posted in Javascript onApril 12, 2014

在系统中,会一些地方使用javascript open window。比如打开固定模式的窗口,防止用户进行其他操作。

参数:

参数 | 取值范围 | 说明
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 | 窗口被激活后是否浮在其它窗口之上

实例:
window.open("page.html", "newwindow", "height=100, width=100, top=0,left=0,toolbar=no, menubar=no, scrollbars=no,resizable=no, location=no, status=no")

根据分辨率计算高度和宽度后打开:
var ht = screen.height-98;
var widhh = screen.width - 20;
window.opener = null;
window.open("", "_self");
window.open("Main.aspx", "newwindow" + JsGuid(),
"height=" + ht + ", width=" + widhh + ",
depended=yes,top=0,left=0,toolbar=no, menubar=no,
 scrollbars=yes, resizable=no, location=no, status=yes");window.close();

并关闭原来的窗口。

问题:

在window.open后,如果系统退出,再次使用window.open打开新页面的时候,会出现错误。

google了半天也没找到。一想这个问题应该不常发生肯定是配置的问题。

其中,我们可以看到window.open的第二个参数是新窗口的名字。这个名字是不能重复的。

如果重复了就是一直在这个窗口打开刷新。

所以我加了一个js的随机GUID函数。

function s4() {
    return Math.floor((1 + Math.random()) * 0x10000)
               .toString(16)
               .substring(1);
};
function JsGuid() {
    return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
           s4() + '-' + s4() + s4() + s4();
}

打开窗口的时候使用:window.open("Main.aspx", "newwindow" + JsGuid());
OK,问题解决。

 

Javascript 相关文章推荐
js有关元素内容操作小结
Dec 20 Javascript
浅谈关于JavaScript的语言特性分析
Apr 11 Javascript
Javascript 按位左移运算符使用介绍(
Feb 04 Javascript
TypeScript具有的几个不同特质
Apr 07 Javascript
JavaScript Function函数类型介绍
Apr 08 Javascript
移动适配的几种方案(三种方案)
Nov 25 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
Feb 24 Javascript
vue-router实现tab标签页(单页面)详解
Oct 17 Javascript
实例讲解javascript实现异步图片上传方法
Dec 05 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 jQuery
React Fragment介绍与使用详解
Nov 11 Javascript
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 Vue.js
jQuery中阻止冒泡事件的方法介绍
Apr 12 #Javascript
jquery ajax应用中iframe自适应高度问题解决方法
Apr 12 #Javascript
javascript事件冒泡详解和捕获、阻止方法
Apr 12 #Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
Apr 12 #Javascript
用jquery写的菜单从左往右滑动出现
Apr 11 #Javascript
瀑布流布局代码一例
Apr 11 #Javascript
javascript读写json示例
Apr 11 #Javascript
You might like
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
2016/09/22 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
2017/03/14 PHP
json原理分析及实例介绍
2012/11/29 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
深入理解Python对Json的解析
2017/02/14 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
通过实例了解Python异常处理机制底层实现
2020/07/23 Python
用python对excel查重
2020/12/07 Python
css3实现可拖动的魔方3d效果
2019/05/07 HTML / CSS
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
学历公证书范本
2014/04/09 职场文书
药剂专业自荐书
2014/06/20 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
店长岗位职责
2015/02/11 职场文书
应届生简历自我评价
2015/03/11 职场文书
运动会观后感
2015/06/09 职场文书
交流会主持词
2015/07/02 职场文书
电力培训学习心得体会
2016/01/11 职场文书
九年级化学教学反思
2016/02/22 职场文书
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript