下面是“JavaScript无提示关闭窗口(兼容IE/Firefox/Chrome)”的完整攻略:
标题
JavaScript无提示关闭窗口(兼容IE/Firefox/Chrome)
问题描述
在网页开发中,有时需要关闭当前页面而不触发提示框的弹出,那么如何使用JavaScript实现无提示关闭浏览器窗口的功能呢?
解决方案
通过JavaScript可以调用浏览器的window.close()
方法来实现关闭当前窗口的功能,但是在各种浏览器中的表现却有差异。下面是兼容各个主流浏览器的无提示关闭窗口方案:
function closeWindow() {
// 判断是否是 IE 浏览器
if (window.ActiveXObject) {
// 设置窗口对象的状态
window.opener = null
window.close()
} else {
// 其他浏览器
window.location.href = 'about:blank'
window.close()
}
}
在上面的代码中,我们首先判断当前浏览器是否是IE浏览器,如果是IE浏览器则将当前窗口的opener属性设置为null,然后调用window.close()
方法来关闭窗口。如果不是IE浏览器,则将当前页面的url设置为'about:blank',然后调用window.close()
方法来关闭窗口。
除了以上方法之外,我们还可以使用以下的代码来完成无提示关闭窗口的功能(此方法不兼容Safari浏览器):
window.open("", "_self").close();
以上代码中,我们先通过window.open
方法打开一个空白的窗口,然后将当前窗口的location
属性设置为"_self",再调用window.close()
方法来关闭窗口。这种方法同样可以实现无提示关闭窗口的功能。
示例说明
示例1
如果我们想在页面中添加一个按钮来关闭当前窗口,则可以在页面中添加如下代码:
<button onclick="closeWindow()">Close</button>
这里我们给按钮添加了一个onclick
事件,当点击按钮时会调用closeWindow()
方法来关闭窗口。
示例2
如果我们需要在一个新打开的窗口中给用户提供一个关闭窗口的按钮,那么可以使用以下代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Close Window Demo</title>
</head>
<body>
<h1>Close Window Demo</h1>
<button onclick="window.opener.closeWindow()">Close</button>
<script>
function closeWindow() {
// 判断是否是 IE 浏览器
if (window.ActiveXObject) {
// 设置窗口对象的状态
window.opener = null
window.close()
} else {
// 其他浏览器
window.location.href = 'about:blank'
window.close()
}
}
</script>
</body>
</html>
在这个例子中,我们创建了一个新的窗口,并在窗口中添加了一个按钮。当用户点击按钮时,将会调用父窗口(打开新窗口的窗口)的closeWindow()
方法来关闭当前窗口。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript无提示关闭窗口(兼容IE/Firefox/Chrome) - Python技术站