最新消息:前端博客、web前端博客、Angularjs、javascript、jQuery、HTML5、CSS3

js中如何巧妙使用open,close窗口

JavaScript AZ 2455浏览 0评论

javascript中我们经常会用到window.open(),window.close()。有时open出来窗口了,需求方却要来打开窗口时关闭当前窗口。理想当然直接在后面加上window.close(),可结果却没有想像的那样。它会出个提示“您查看的网页正在试图关闭窗口。是否关闭窗口?”,如何才能不弹出这个提示?

window.open("https://www.tuterm.com/js-how-to-skillfully-use-the-openclose-window/", "AZ","height="+window.screen.availHeight+", width="+window.screen.availWidth+", toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no");
window.close();

那么如何才能用Javascript关闭当前窗口呢?官方API里有这么一句话:只有通过 JavaScript 代码打开的窗口才能够由 JavaScript 代码关闭。
官方为了防止恶意脚本关闭用户浏览器,Javascript关闭当前窗口必须是Javascript打开的窗口的才能关闭。所以我们只要在关闭之前用open新开一个窗口替换当前窗口,执行关闭就不会提示,顺利关闭!

window.open("https://www.tuterm.com/js-how-to-skillfully-use-the-openclose-window/", "AZ","height="+window.screen.availHeight+", width="+window.screen.availWidth+", toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no");
window.opener=null; //释放当前open的窗口
window.open('', '_self', ''); //IE6,IE7,IE8,FF 下有效,当窗口用javascript新open一个空白窗口
window.close(); //此时执行关闭生效

简单拓展open()

语法

window.open(URL,name,features,replace)
参数 描述
URL 一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。
name 一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记 <a> 和 <form> 的属性 target 的值。如果该参数指定了一个已经存在的窗口,那么 open() 方法就不再创建一个新窗口,而只是返回对指定窗口的引用。在这种情况下,features 将被忽略。
features 一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。在窗口特征这个表格中,我们对该字符串的格式进行了详细的说明。
replace 一个可选的布尔值。规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持下面的值:

  • true – URL 替换浏览历史中的当前条目。
  • false – URL 在浏览历史中创建新的条目。

窗口特征(Window Features)

channelmode=yes|no|1|0 是否使用剧院模式显示窗口。默认为 no。
directories=yes|no|1|0 是否添加目录按钮。默认为 yes。
fullscreen=yes|no|1|0 是否使用全屏模式显示浏览器。默认是 no。处于全屏模式的窗口必须同时处于剧院模式。
height=pixels 窗口文档显示区的高度。以像素计。
left=pixels 窗口的 x 坐标。以像素计。
location=yes|no|1|0 是否显示地址字段。默认是 yes。
menubar=yes|no|1|0 是否显示菜单栏。默认是 yes。
resizable=yes|no|1|0 窗口是否可调节尺寸。默认是 yes。
scrollbars=yes|no|1|0 是否显示滚动条。默认是 yes。
status=yes|no|1|0 是否添加状态栏。默认是 yes。
titlebar=yes|no|1|0 是否显示标题栏。默认是 yes。
toolbar=yes|no|1|0 是否显示浏览器的工具栏。默认是 yes。
top=pixels 窗口的 y 坐标。
width=pixels 窗口的文档显示区的宽度。以像素计。

简单拓展close()

语法

window.close()

说明

方法 close() 将关闭有 window 指定的顶层浏览器窗口。某个窗口可以通过调用 self.close() 或只调用 close() 来关闭其自身。只有通过 JavaScript 代码打开的窗口才能够由 JavaScript 代码关闭。这阻止了恶意的脚本终止用户的浏览器。

 

转载请注明:TUTERM.COM » js中如何巧妙使用open,close窗口

如果您觉得本文的内容对您的学习有所帮助,您可以支付宝(左)或微信(右):
alipay weichat

您必须 登录 才能发表评论!