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 相关文章推荐
prototype Element学习笔记(Element篇三)
Oct 26 Javascript
window.onload 加载完毕的问题及解决方案(下)
Jul 09 Javascript
一个JQuery操作Table的代码分享
Mar 30 Javascript
使用js完成节点的增删改复制等的操作
Jan 02 Javascript
js简单抽奖代码
Jan 16 Javascript
web前端开发JQuery常用实例代码片段(50个)
Aug 28 Javascript
jQuery实用技巧必备(上)
Nov 02 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
Sep 12 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
Mar 23 Javascript
angularJS开发注意事项
May 26 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
Aug 24 Javascript
js闭包和垃圾回收机制示例详解
Mar 01 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
PHP 魔术函数使用说明
2010/05/14 PHP
浅谈php冒泡排序
2014/12/30 PHP
Yii全局函数用法示例
2017/01/22 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
javascript中直接写php代码的方法
2013/07/31 Javascript
jQuery对val和atrr("value")赋值的区别介绍
2014/09/26 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
axios学习教程全攻略
2017/03/26 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
JS实现随机生成10个手机号的方法示例
2018/12/07 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
pd.DataFrame统计各列数值多少的实例
2019/12/05 Python
python实现logistic分类算法代码
2020/02/28 Python
Python绘制动态水球图过程详解
2020/06/03 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
医学专业毕业生个人求职信
2013/12/25 职场文书
单位委托书怎么写
2014/08/02 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
详解JavaScript中Arguments对象用途
2021/08/30 Javascript
MySQL中order by的使用详情
2021/11/17 MySQL