我想在网页上创建一个链接,将关闭浏览器中当前活动的选项卡,而不关闭浏览器中的其他选项卡。当用户单击关闭链接时,将出现一条警告消息,要求用户使用“YES”和“NO”两个按钮确认。如果用户单击“是”,关闭该页面,如果“否”,什么都不做。

怎样才能做到呢?有什么建议吗?


当前回答

下面是如何创建这样一个链接:

<a href=“javascript:if(“Close window?”)window. Close ()闭> < / a >

其他回答

您将需要Javascript来完成此操作。使用window.close ():

close();

注意:当前选项卡是隐含的。这是等价的:

window.close();

或者您可以指定一个不同的窗口。

So:

function close_window() {
  if (confirm("Close Window?")) {
    close();
  }
}

HTML:

<a href="javascript:close_window();">close</a>

or:

<a href="#" onclick="close_window();return false;">close</a>

这里返回false以防止事件的默认行为。否则浏览器将尝试访问该URL(显然不是这样)。

现在window.confirm()对话框上的选项将是OK和Cancel(不是Yes和No)。如果你真的想要“是”和“否”,你需要创建某种模式Javascript对话框。

注意:与上面的有特定于浏览器的区别。如果你用Javascript打开了这个窗口(通过window.open()),那么你可以用Javascript关闭这个窗口。Firefox不允许关闭其他窗口。我相信IE会要求用户确认。其他浏览器可能有所不同。

在FF 18和Chrome 24测试成功:

插入头部:

<script>
    function closeWindow() {
        window.open('','_parent','');
        window.close();
    }
</script> 

HTML:

<a href="javascript:closeWindow();">Close Window</a>

感谢马科斯·j·德雷克。

您可以尝试使用JavaScript + HTML来欺骗浏览器关闭当前窗口:

JS:

function closeWindow() {
 if(window.confirm('Are you sure?')) {
  window.alert('Closing window')
  window.open('', '_self')
  window.close()
 }
 else {
  alert('Cancelled!')
 }
}

HTML:

Some content
<button onclick='closeWindow()'>Close Current Window!</button>
More content

下面是如何创建这样一个链接:

<a href=“javascript:if(“Close window?”)window. 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()函数的信息