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 相关文章推荐
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
Dec 02 Javascript
javascript的数据类型、字面量、变量介绍
May 23 Javascript
js用闭包遍历树状数组的方法
Mar 19 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
Mar 12 Javascript
JS中的Replace方法使用经验分享
May 20 Javascript
BootStrap无限级分类(无限极分类封装版)
Aug 26 Javascript
Bootstrap基本组件学习笔记之导航(10)
Dec 07 Javascript
原生js封装添加class,删除class的实例
Nov 06 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
Sep 10 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
Sep 20 Javascript
vue+django实现一对一聊天功能的实例代码
Jul 17 Javascript
深入浅析vue全局环境变量和模式
Apr 28 Javascript
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
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
2016/11/16 PHP
jQuery 自定义函数写法分享
2012/03/30 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
js 高效去除数组重复元素示例代码
2013/12/19 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
jquery.cookie.js用法实例详解
2015/12/25 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
python进阶_浅谈面向对象进阶
2017/08/17 Python
python如何定义带参数的装饰器
2018/03/20 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
python如何控制进程或者线程的个数
2020/10/16 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
详解CSS3的box-shadow属性制作边框阴影效果的方法
2016/05/10 HTML / CSS
CSS3实现时间轴特效
2020/11/02 HTML / CSS
党员民主评议总结
2014/10/20 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis