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

 更新时间:2014年04月12日 11:05:39   作者:  
这篇文章主要介绍了javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法即无法再次打开窗口、第二次打开不了,需要的朋友可以参考下

在系统中,会一些地方使用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,问题解决。

 

相关文章

  • 详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)

    详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)

    这篇文章主要介绍了在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • JavaScript实现翻转图片的三种方法小结

    JavaScript实现翻转图片的三种方法小结

    有时,我们可能需要翻转Web应用中的媒体元素,所以这篇文章小编为大家详细介绍了三种使用JavaScript翻转图片的方法,希望对大家有所帮助
    2024-01-01
  • bootstrap实现轮播图效果

    bootstrap实现轮播图效果

    这篇文章主要为大家详细介绍了bootstrap实现轮播图效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • js指定日期增加指定月份的实现方法

    js指定日期增加指定月份的实现方法

    这篇文章主要给大家介绍了关于js指定日期增加指定月份的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2018-12-12
  • javascript自定义的addClass()方法

    javascript自定义的addClass()方法

    这篇文章主要介绍了javascript自定义的addClass()方法,通过传参就可以实现样式的添加
    2014-05-05
  • Canvas实现微信红包照片效果

    Canvas实现微信红包照片效果

    这篇文章主要为大家详细介绍了Canvas实现微信红包照片效果,用canvas及css3结合,实现红包照片的效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Javascript中的常见排序算法

    Javascript中的常见排序算法

    用JavaScript实现的常见排序算法:冒泡排序,选择排序,插入排序,谢尔排序,快速排序(递归),快速排序(堆栈),归并排序,堆排序。
    2007-03-03
  • echart简介_动力节点Java学院整理

    echart简介_动力节点Java学院整理

    这篇文章主要介绍了echart简介,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 快速解决FusionCharts联动的中文乱码问题

    快速解决FusionCharts联动的中文乱码问题

    这篇文章主要介绍了如何解决FusionCharts联动的中文乱码问题。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • JavaScript实现阿拉伯数字和中文数字互相转换

    JavaScript实现阿拉伯数字和中文数字互相转换

    JavaScript实现阿拉伯数字和中文数字互相转换可以用数组的循环检测后的替换来实现,下面主要讲解其中的一些核心算法:
    2016-06-06

最新评论