如何关闭浏览器选项卡

时间:2015-09-30 08:42:21

标签: javascript jquery

我无法使用javascript关闭当前的浏览器标签。

我试过 -

    window.close(); //1

    window.open("", '_self');//2
    setTimeout(function(){
        window.close();
    },100);

    window.open('','_parent',''); //3
    window.close();

    window.top.opener=null; //4
    window.close();

Chrome中没有什么对我有用

7 个答案:

答案 0 :(得分:9)

只允许为使用window.open方法的脚本打开的窗口调用window.close方法。

答案 1 :(得分:3)

window.open('', '_self', '').close();

请参阅此thread

的原始答案

答案 2 :(得分:1)

据我所知,您无法使用Javascript关闭浏览器标签。这不是常见的做法......

我不确定你是否可以这样做,因为有些浏览器根本没有任何标签...

但试试这个,可能适合你:

window.top.close();

参考:Another Question in stackoverflow

或:

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

答案 3 :(得分:0)

您只能关闭自己创建的窗口/标签页。也就是说,您无法以编程方式关闭用户创建的窗口/选项卡。

例如,如果您使用window.open()创建一个窗口,则可以使用window.close()将其关闭。

答案 4 :(得分:0)

请尝试使用以下

repositories {
    jcenter()
    mavenCentral()

}

希望,这会有所帮助!

答案 5 :(得分:0)

如前所述,您只能关闭之前打开的窗口/标签页。您的所有代码段都不符合此要求。

如果要从父窗口关闭子窗口,则需要存储对它的引用,例如:

var child = window.open("");
setTimeout(function(){
    child.close();
},100);

Demo

如果要从自身关闭子窗口,则需要在窗口内运行代码。

如果用空白文档覆盖当前文档,则代码将消失。

现在,Chrome是一个特殊的野兽。它会在不同的进程中打开每个选项卡。这意味着涉及不同标签的几种好的旧技术根本不起作用。例如,您甚至无法使用window.open()中的target参数来共享窗口。

答案 6 :(得分:0)

<script src="~/Scripts/jquery-1.8.2.js"></script>
<script>
    var win;
    $(document).ready(function () {
        var url = 'this tab url';
        win = window.open(url, '_self');
        window.stop();                
    });
    function closeWindow() {
        win.close();
    }
</script>

然后在html中

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

如果要加载多个牙齿,请等待一段时间

setTimeout(
  function() 
  {
    //do something special
   //window.stop(); 
  }, 5000);