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

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


当前回答

由于严格的浏览器行为,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>

在这个现场演示中输入关闭

其他回答

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

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

这是解决这个问题的一种方法,像这样声明一个JavaScript函数

<script>
  function Exit() {
     var x=confirm('Are You sure want to exit:');
     if(x) window.close();
   }
</script>

在HTML中添加以下行,使用<button>调用函数

<button name='closeIt' onClick="Exit()" >Click to exit </Button>

对于仍在访问此页面的人,您只允许关闭由脚本打开的选项卡或使用带有target _blank的HTML锚标记。这两个都可以使用

<script>
    window.close();
</script>

您可以尝试使用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

由于严格的浏览器行为,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>

在这个现场演示中输入关闭