我想在网页上创建一个链接,将关闭浏览器中当前活动的选项卡,而不关闭浏览器中的其他选项卡。当用户单击关闭链接时,将出现一条警告消息,要求用户使用“YES”和“NO”两个按钮确认。如果用户单击“是”,关闭该页面,如果“否”,什么都不做。
怎样才能做到呢?有什么建议吗?
我想在网页上创建一个链接,将关闭浏览器中当前活动的选项卡,而不关闭浏览器中的其他选项卡。当用户单击关闭链接时,将出现一条警告消息,要求用户使用“YES”和“NO”两个按钮确认。如果用户单击“是”,关闭该页面,如果“否”,什么都不做。
怎样才能做到呢?有什么建议吗?
当前回答
在FF 18和Chrome 24测试成功:
插入头部:
<script>
function closeWindow() {
window.open('','_parent','');
window.close();
}
</script>
HTML:
<a href="javascript:closeWindow();">Close Window</a>
感谢马科斯·j·德雷克。
其他回答
在FF 18和Chrome 24测试成功:
插入头部:
<script>
function closeWindow() {
window.open('','_parent','');
window.close();
}
</script>
HTML:
<a href="javascript:closeWindow();">Close Window</a>
感谢马科斯·j·德雷克。
有点晚了,但这是我发现的……
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()函数的信息
window.close()在2k21中不起作用,因为脚本可能只关闭由它们打开的窗口。
但是如果标签在浏览器中不是手动打开的,而是自动打开的,那么window.close()就可以工作了。
自动(当close()工作时):
<a href="/close" target="_blank">浏览器将在新选项卡中打开地址,该选项卡可以用close()关闭 当新的浏览器标签从另一个应用程序打开(当你点击一个链接在Telegram/Whatsup/Outlook等)-操作系统将打开新的标签,它可以关闭close() 当你用window.open('ya.ru')打开时,当然可以用close()关闭它
手动(当它不工作时):
当你打开新的浏览器并输入地址。 当您单击(+)打开新选项卡,并键入地址
下面是如何创建这样一个链接:
<a href=“javascript:if(“Close window?”)window. Close ()闭> < / a >
试试这个
<a href="javascript:window.open('','_self').close();">close</a>