Javascript 关闭当前窗口

Javascript 关闭当前窗口,javascript,html,Javascript,Html,请帮助java脚本关闭当前窗口。 这是我的代码,它不工作 <input type="button" class="btn btn-success" style="font-weight: bold;display: inline;" value="Close" onclick="closeMe()"> function closeMe() {

请帮助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();
}
应该是

<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>

函数closeMe()
{
window.opener=self;
window.close();
}

试试这个,效果很好

<!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>

var-myWindow;
函数openWin()
{
myWindow=window.open(“,”myWindow“,”宽度=200,高度=100”);
myWindow.document.write(“这是‘myWindow’

”); } 函数closeWin() { myWindow.close(); }

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

您不能用未打开的javascript关闭窗口。它在chrome或firefox中不起作用


有关更多信息,请参阅。

我建议将
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>

回调函数如下所示:

<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>

$(“#关闭_窗口”)。在('单击',函数()上{
window.opener=self;
window.close();
});

我认为有时单击
onclick
不起作用,请检查以下内容

只能在谷歌浏览器中使用
self.close()。在v48中测试


window.close()
不会做你想做的事,因为它的文档清楚地说明脚本只能关闭它打开的窗口。

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

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

窗口。打开(“”,“”,“”);
window.close();

我找到了杰夫·克莱顿的这个方法。它在Firefox56和Chrome(在Windows和Android上)上对我有效

没有尝试所有的可能性。在我这方面,我打开一个窗口,在我的a链接中有一个目标名称,例如target=“mywindowname”,因此我的所有链接都在同一个窗口名称中打开:mywindowname

要打开新窗口,请执行以下操作:

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

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

我知道这是一篇老文章,自2017年以来有很多变化,但我发现我可以通过以下方法关闭当前的选项卡/窗口:

onClick="javascript:window.close('','_parent','');", now in 2019.  
**更新** 由于发布了答案,最新版本的浏览器阻止了该命令的运行。我会让答案保持可见,但请注意,它只适用于较旧的浏览器版本


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

window.open(“”,”“self”).close()


这将在当前窗口(第二个参数)中加载一个空白url(第一个参数),然后立即关闭窗口。这是因为当调用
close()
时,当前窗口已由javascript打开。

在javascript中,我们只能在使用方法打开窗口时关闭该窗口:

window.open('https://www.google.com');
window.close();
但要关闭未使用
window.open()
打开的窗口,必须

  • 在同一选项卡中打开任何其他URL或空白页
  • 关闭这个新打开的选项卡(这将起作用,因为它是由
    窗口打开的。open()
  • window.open(“,”self”);
    window.close();
    
    如果无法关闭脚本未打开的窗口,则可以使用以下代码销毁页面:

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

    我也有同样的问题,浏览器不允许关闭选项卡,但我解决了它(我们有2021年6月12日)。 您的browserhistory必须是1步(在chrome中)才能使用window.close(),如果您在另一个窗口之后打开,它将无法工作。 如果在每个链接上添加onClick=windows.close事件,并在新选项卡(target=_blank)中打开此链接,您的历史记录将停留在1个步骤,并且始终可以使用windows.close()关闭选项卡

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

    谢谢,但我知道,我只想要一个关闭按钮来关闭当前页面,而不是关闭弹出窗口。可能是我知道的重复,但在其他帖子中,它在我的项目中不起作用,所以我发布了另一个问题以找到具体答案。只需调用
    window.close()
    它将关闭当前窗口。如果它不工作…它应该一直工作。谢谢,但它不工作,兄弟,我点击了关闭按钮,什么都没发生,我在谷歌上读到一些搜索,其他人也遇到了和我一样的问题,因为firefox 22或23
    self===window
    ,除非窗口是空的,或者被t打开,否则这些都不工作他同样的脚本在2020年完美地为我工作(根据情况),我对任何事情都是新手,但Chrome@aNewb中的以下html格式不正确。你的问题是,你缺少了关闭开始标签的>。如果他们可能在某个点上起作用,它肯定不再在Chrome上工作(使用Chrome 85测试)刚刚测试过,不幸的是,我认为你是对的@GyumFox:“
    'quit'
    参数有什么意义?很难看。这只会使窗口变空。chromeWell对我不起作用,这是一个糟糕的问题。其他脚本是否起作用?似乎对我仍然起作用,我正在使用Chrome。你的Chrome版本是什么?我的是”版本89.0.4389.128(官方版本)(64位)”。他们可能对此进行了修补。@ScytherGonth此示例适用于一个网站,在该网站中,您可以从主页转到在新选项卡中打开的图库。在此图库中,您可以选择项目并从一个图库网站转到下一个图库网站。至少您可以关闭此打开的选项卡,这与如何关闭无关
    document.getElementsByTagName ('html') [0] .remove ();
    
    document.querySelectorAll("a").forEach(function(x){
        x.setAttribute('target', '_blank');
        x.setAttribute('onClick', "window.setTimeout(function(){window.close();}, 250);");
    document.getElementById("close").setAttribute('target', '_parent');
    document.getElementById("close").setAttribute('onClick', "window.close()");
    document.getElementById("navbarDropdownMenuLink").setAttribute('onclick', "");})