javascript关闭当前窗口

时间:2014-04-26 05:07:50

标签: javascript html

请关于关闭当前窗口的java脚本。 这是我的代码,它不起作用。

<input type="button" class="btn btn-success"
                       style="font-weight: bold;display: inline;"
                       value="Close"
                       onclick="closeMe()">
function closeMe()
{
    window.opener = self;
    window.close();
}

我尝试了这个,但它不起作用

var win = window.open(“”,”_self”);
    win.close();

13 个答案:

答案 0 :(得分:6)

您无法使用未打开的javascript关闭窗口。它不适用于chrome或firefox。

有关详细信息,请参阅https://stackoverflow.com/a/19768082/2623781

答案 1 :(得分:1)

应该是

<input type="button" class="btn btn-success"
                       style="font-weight: bold;display: inline;"
                       value="Close"
                       onclick="closeMe()">
<script>
function closeMe()
{
    window.opener = self;
    window.close();
}
</script>

答案 2 :(得分:0)

我建议将id放入输入,然后通过回调函数关闭窗口,如下所示:

<input id="close_window" type="button" class="btn btn-success"
                   style="font-weight: bold;display: inline;"
                   value="Close">

回调函数如下:

<script>
   $('#close_window').on('click', function(){
      window.opener = self;
      window.close();
   });
</script>

我认为有时onclick无效,请检查以下answer

答案 3 :(得分:0)

要使用JS关闭当前窗口,请执行此操作。首先打开当前窗口,以欺骗当前选项卡,使其认为已由脚本打开。然后使用window.close()关闭它。下面的脚本应该进入父窗口,而不是子窗口。您可以在运行脚本以打开子项后运行此命令。

<script type="text/javascript">
    window.open('','_parent',''); 
    window.close();
</script>

答案 4 :(得分:0)

我找到了杰夫克莱顿的这种方法。它适用于Firefox 56和Chrome(在Windows和Android上)。

没有尝试所有可能性。在我这边,我在A链接中打开一个目标名称的窗口,例如,target =&#34; mywindowname&#34;,所以我的所有链接都在同一窗口名称中打开:mywindowname。

要打开一个新窗口:

<a href="example-link.html" target="mywindowname">New Window</a>

然后在新窗口中(在example-link.html中):

<a href="#" onclick="return quitBox('quit');"></a>

使用Javascript:

function quitBox(cmd) {   
    if (cmd=='quit') {
        open(location, '_self').close();
    }   
    return false;   
}

希望这可以帮助其他正在寻找关闭窗口的方法的人。我尝试了很多其他方法,这是我找到的最好的方法。

答案 5 :(得分:0)

我知道这是一篇旧文章,自2017年以来进行了很多更改,但是我发现可以使用以下命令关闭当前的标签/窗口:

onClick="javascript:window.close('','_parent','');", now in 2019.  

答案 6 :(得分:0)

大多数浏览器会阻止您使用未用window.open("https://example_url.com")打开的javascript关闭窗口,但是仍然可以使用以下命令关闭当前窗口:

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

这将在当前窗口(第二个参数)中加载一个空白的url(第一个参数),然后立即关闭该窗口。自调用close()以来,当前的窗口已由javascript打开,因此该方法有效。

答案 7 :(得分:0)

在javascript中,仅当使用window.open(URL)方法打开窗口时,我们才能关闭窗口。

示例:-

window.open(“ https://www.google.com/”);

然后我可以使用

关闭此窗口

window.close();

但是要关闭未由window.open()打开的窗口,只需做一件事

  • 在同一标签中打开任何其他URL或空白页。
  • 然后关闭此新打开的选项卡(因为它是由window.open()打开的)

代码:-

<script> window.open("", "_self"); window.close(); </script>

在这里,我们在要关闭的同一标签中打开空白页,然后将其关闭。

答案 8 :(得分:0)

如果无法关闭脚本未打开的窗口,则可以使用以下代码破坏页面:

document.getElementsByTagName ('html') [0] .remove ();

答案 9 :(得分:0)

我遇到了同样的问题,浏览器不允许关闭选项卡,但我为我修复了它(2021 年 6 月 12 日)。 浏览器历史必须是 1 步(在 chrome 中)才能使用 window.close(),如果您打开另一个窗口,那么您有 2 步,它将不再起作用。所以我必须关闭并打开新的每个窗口。 如果我在每个链接上添加一个 onClick=windows.close 事件并在新选项卡 (target=_blank") 中打开此链接,则历史记录停留在 1 步,并且它始终可以使用 windows.close() 关闭选项卡。

<html>
<head></head>
<body>
    <div id="navbarToggler" >   
        <ul>
            <li>
                <a href class="closes" id="close"><script>document.write("[close]")</script></a>
            </li>     
            <li>
                <a class="nav-link text-nowrap " href="#" id="navbarDropdownMenuLink" >
                    gallery...does not close, it should be the Dropdownlink
                </a>
                    <div aria-labelledby="navbarDropdownMenuLink">
                    <a  href="#">self.html</a> Here you can link where you want, but every site needs the script
                    </div>
            </li>
        </ul>
    </div>
    <script>    
        document.querySelectorAll("a").forEach(function(x){
        x.setAttribute('target', '_blank');
        x.setAttribute('onClick', "window.setTimeout(function(){window.close();}, 50);");
        document.getElementById("close").setAttribute('target', '_self');
        document.getElementById("close").setAttribute('onClick', "window.close()");
        document.getElementById("navbarDropdownMenuLink").setAttribute('onclick', "");
        document.getElementById("navbarDropdownMenuLink").setAttribute('target', '_self');})
    </script>
</body></html>

id 'navbarDropdownMenuLink' 必须通过关闭来排除,因为它是一个下拉菜单。 必须通过在新选项卡中打开来排除 id 'close',因为这是关闭当前选项卡的链接。 Firefox 需要 setTimeout 函数。

答案 10 :(得分:-1)

你可以尝试

function closed(){
 
 setTimeout("window.close()", 500);
 }

答案 11 :(得分:-2)

尝试这样做可行......

<!DOCTYPE html>
<html>
<body>

<input type="button"  onclick="openWin()" value="open"/>
<input type="button"  onclick="closeWin()" value="close"/>

<script>
var myWindow;

function openWin()
{
myWindow = window.open("","myWindow","width=200,height=100");
myWindow.document.write("<p>This is 'myWindow'</p>");
}

function closeWin()
{
myWindow.close();
}
</script>

</body>
</html>

这可以按照您希望的方式工作

答案 12 :(得分:-2)

仅适用于self.close();的Google Chrome浏览器。在v48中测试。

window.close()不会做你想做的事情,因为它的文档明确指出脚本可能只关闭它打开的窗口。