我想在网页上创建一个链接,将关闭浏览器中当前活动的选项卡,而不关闭浏览器中的其他选项卡。当用户单击关闭链接时,将出现一条警告消息,要求用户使用“YES”和“NO”两个按钮确认。如果用户单击“是”,关闭该页面,如果“否”,什么都不做。
怎样才能做到呢?有什么建议吗?
我想在网页上创建一个链接,将关闭浏览器中当前活动的选项卡,而不关闭浏览器中的其他选项卡。当用户单击关闭链接时,将出现一条警告消息,要求用户使用“YES”和“NO”两个按钮确认。如果用户单击“是”,关闭该页面,如果“否”,什么都不做。
怎样才能做到呢?有什么建议吗?
当前回答
试试这个
<a href="javascript:window.open('','_self').close();">close</a>
其他回答
有点晚了,但这是我发现的……
window.close()将只工作(IE是一个例外)当你试图关闭()的窗口是由脚本使用window.open()方法打开的。
(请参阅下面@killstreet关于target _blank的锚标签的评论)
TLDR: chrome和firefox允许关闭它们。
你会得到控制台错误: 脚本不能关闭非脚本打开的窗口。 只是一个错误而已。
你可以在URL中添加一个唯一的参数来知道页面是否从脚本打开(比如时间)-但这只是一个黑客,而不是一个本地功能,在某些情况下会失败。
我找不到任何方法知道页面是否从open()打开, 并且close不会抛出和错误。 这将不会打印"test":
try{
window.close();
}
catch (e){
console.log("text");
}
你可以在MDN中阅读更多关于close()函数的信息
据我所知,在Chrome或FireFox中已经不可能了。这在IE中仍然是可能的(至少在edge之前)。
下面是如何创建这样一个链接:
<a href=“javascript:if(“Close window?”)window. Close ()闭> < / a >
试试这个
<a href="javascript:window.open('','_self').close();">close</a>
由于严格的浏览器行为,window.close()只有在通过window.open(…)打开时才会工作。
但我想了个办法!
当没有包含window.open(…)时,添加一个空标签 当关闭的最佳时间出现时,调用window.close 如果2。已经返回一个错误,替换任何标签或HTTP参数与一个空的标签,最后关闭窗口
<button onclick="myFunction()">Close</button>
<script>
if (location.href.indexOf("#") == -1) {
window.open(location.href + "#", "_self")
}
function myFunction() {
try {
window.close()
} catch (err) {
window.open(location.href.substring(0, location.href.indexOf("?")).substring(0, location.href.indexOf("#")) + "#", "_self")
window.close()
}
}
</script>
在这个现场演示中输入关闭