Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何关闭浏览器窗口中的当前选项卡?_Javascript_Html_Hyperlink - Fatal编程技术网

Javascript 如何关闭浏览器窗口中的当前选项卡?

Javascript 如何关闭浏览器窗口中的当前选项卡?,javascript,html,hyperlink,Javascript,Html,Hyperlink,我想在网页上创建一个链接,该链接将关闭浏览器中当前活动的选项卡,而不关闭浏览器中的其他选项卡当用户单击关闭链接时,会出现一条警告消息,要求用户用两个按钮“是”和“否”进行确认。如果用户单击“是”,则关闭该页面,如果单击“否”,则不执行任何操作 怎样才能做到呢?有什么建议吗?要做到这一点,您需要Javascript。使用: 注意:暗示当前选项卡。这相当于: window.close(); 也可以指定其他窗口 因此: 使用HTML: <a href="javascript:close_win

我想在网页上创建一个链接,该链接将关闭浏览器中当前活动的选项卡,而不关闭浏览器中的其他选项卡
当用户单击关闭链接时,会出现一条警告消息,要求用户用两个按钮“是”和“否”进行确认。如果用户单击“是”,则关闭该页面,如果单击“否”,则不执行任何操作


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

要做到这一点,您需要Javascript。使用:

注意:暗示当前选项卡。这相当于:

window.close();
也可以指定其他窗口

因此:

使用HTML:

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

或:


您可以在此处
返回false
,以防止事件的默认行为。否则,浏览器将尝试转到该URL(显然不是)

现在对话框上的选项将是“确定”和“取消”(不是“是”和“否”)。如果您真的想要“是”和“否”,您需要创建某种模式Javascript对话框


注意:与上述内容存在特定于浏览器的差异。如果使用Javascript打开窗口(通过
window.open()
),则允许使用Javascript关闭窗口。Firefox不允许您关闭其他窗口。我相信IE会要求用户确认。其他浏览器可能会有所不同。

以下是创建此类链接的方法:


此方法适用于Chrome和IE:

<a href="blablabla" onclick="setTimeout(function(){var ww = window.open(window.location, '_self'); ww.close(); }, 1000);">
    If you click on this the window will be closed after 1000ms
</a>

在FF 18和Chrome 24中成功测试:

在标题中插入:

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

函数closeWindow(){
窗口。打开(“”,“”,“”);
window.close();
}
HTML:


学分转到。

试试这个

<a href="javascript:window.open('','_self').close();">close</a>

这是解决相同问题的一种方法,声明如下JavaScript函数

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

函数Exit(){
var x=confirm('您确定要退出吗:');
if(x)window.close();
}
在HTML中添加以下行以使用

单击退出

也试试这个。在所有三大浏览器上为我工作

<!-- saved from url=(0014)about:internet -->
<a href="#" onclick="javascript:window.close();opener.window.focus();" >Close Window</a>

这是可能的。我搜索了整个网络,但有一次当我接受微软的调查时,我终于得到了答案

试试这个:

window.top.close();

这将为您关闭当前选项卡。

以下内容在Chrome 41中适用:

function leave() {
  var myWindow = window.open("", "_self");
  myWindow.document.write("");
  setTimeout (function() {myWindow.close();},1000);
}
我尝试了几种FF的想法,包括打开一个实际的网页,但似乎没有任何效果。据我所知,任何浏览器都会关闭一个带有xxx.close()的选项卡或窗口,如果它确实是由JS打开的,但至少不能通过打开该选项卡内的新内容来欺骗FF关闭该选项卡


想想看,这是有道理的——用户可能不希望JS关闭一个具有有用历史记录的选项卡或窗口。

据我所知,在Chrome或FireFox中已经不可能了。这在IE中仍然是可能的(至少是pre Edge)。

有点晚了,但这就是我发现的

window.close()
仅当您试图
close()
的窗口是由使用window.open()方法的脚本打开时才起作用(即例外)

!!(请参阅下面@killstreet关于目标为空的锚定标签的评论)

TLDR:chrome和firefox允许关闭它们

您将看到控制台错误: 脚本不能关闭未由脚本打开的窗口。 作为一个错误,没有别的

您可以在URL中添加一个唯一的参数,以了解页面是否是通过脚本打开的(如time),但这只是一种黑客行为,而不是本机功能,在某些情况下会失败

我找不到任何方法知道页面是否从open()打开, 并且关闭时不会抛出错误。 这不会打印“测试”:


您可以阅读

对于仍在访问此页面的用户,您只能关闭由脚本打开的选项卡,或使用HTML的锚定标记(target为空)。这两个都可以使用

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

window.close();
关闭窗口

这为我做了工作

很抱歉发布了这篇文章,但我最近实现了一个本地托管的站点,该站点需要关闭当前浏览器选项卡的功能,并且发现了一些有趣的解决方法,这些方法在我能找到的任何地方都没有很好的文档记录,所以我自己就这么做了

注意:这些解决方案是在考虑本地托管站点的情况下完成的,并且(除Edge外)需要专门配置浏览器,因此对于公共托管站点来说并不理想

上下文:在过去,jQuery脚本
window.close()
能够在大多数浏览器上毫无问题地关闭当前选项卡。但是,现代浏览器不再支持此脚本,可能是出于安全原因

谷歌浏览器: Chrome不允许运行window.close()脚本,如果您尝试使用它,则不会发生任何事情。但是,通过使用Chrome插件TamperMonkey,我们可以使用window.close()方法如果
/@grant window.close
包含在TamperMonkey的用户脚本头中

例如,我的脚本(当单击id为“关闭页面”的按钮并在浏览器弹出窗口上按“是”时触发)如下所示:

// ==UserScript==
// @name         Close Tab Script
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Closes current tab when triggered
// @author       Mackey Johnstone
// @match        http://localhost/index.php
// @grant        window.close
// @require      http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==

(function() {
    'use strict';
    $("#close_page").click(function() {
        var confirm_result = confirm("Are you sure you want to quit?");
        if (confirm_result == true) {
            window.close();
        }
    });
})();
注意:如果该选项卡不是最后一个打开的选项卡,则此解决方案只能关闭该选项卡。因此,如果最后一个打开的选项卡会导致窗口关闭,它将无法有效地关闭该选项卡

火狐: Firefox有一个高级设置,您可以启用它来允许脚本关闭窗口,从而有效地启用
window.close()
方法。要启用此设置,请转到about:config,然后搜索并找到dom.allow_scripts_To_close_windows首选项,并将其从false切换为true

这允许您使用<
<!-- saved from url=(0014)about:internet -->
<a href="#" onclick="javascript:window.close();opener.window.focus();" >Close Window</a>
window.top.close();
function leave() {
  var myWindow = window.open("", "_self");
  myWindow.document.write("");
  setTimeout (function() {myWindow.close();},1000);
}
try{
  window.close();
}
catch (e){
  console.log("text");
}
<script>
    window.close();
</script>
<button class="closeButton" style="cursor: pointer" onclick="window.close();">Close Window</button>
// ==UserScript==
// @name         Close Tab Script
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Closes current tab when triggered
// @author       Mackey Johnstone
// @match        http://localhost/index.php
// @grant        window.close
// @require      http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==

(function() {
    'use strict';
    $("#close_page").click(function() {
        var confirm_result = confirm("Are you sure you want to quit?");
        if (confirm_result == true) {
            window.close();
        }
    });
})();
<script>
  $("#close_page").click(function() {
    var confirm_result = confirm("Are you sure you want to quit?");
    if (confirm_result == true) {
      window.close();
    }
  });
</script>
function closeWindow() {
 if(window.confirm('Are you sure?')) {
  window.alert('Closing window')
  window.open('', '_self')
  window.close()
 }
 else {
  alert('Cancelled!')
 }
}
Some content
<button onclick='closeWindow()'>Close Current Window!</button>
More content