关闭当前选项卡

IT技术 javascript html cross-browser
2021-01-24 17:02:24

我的网页上有一个关闭链接。我想在单击它时关闭当前选项卡。我已经写了

<a href="#" onclick = "javascript:self.close();">close</a>

上面的代码似乎在 Internet Explorer 中运行良好。但它不适用于 Mozilla Firefox 和 Google Chrome。请帮我解决这个问题。

6个回答

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

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

不确定,但 IE 有时有它自己的方式。
2021-03-27 17:02:24
@ustasb 我怎样才能做 window.open() 以便以后有可能关闭它?。我真的不明白我应该把 window.open 放在哪里,我已经把那行代码放在了脚本标签的头部部分,它只是打开另一个有意义的选项卡,但我不想关闭新窗口打开,我想关闭当前窗口。有什么建议吗?
2021-04-09 17:02:24
感谢您的回答。可能为什么它在 Internet Explorer 中工作?
2021-04-11 17:02:24

从 Chrome 46 开始,一个简单的onclick=window.close()就可以了。如果打开多个选项卡,这只会关闭选项卡,而不是整个浏览器。

您可以使用下面的 JavaScript。

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

在 HTML 中,您可以使用以下代码

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

我已经在 Chrome 61 和 IE11 中尝试过它,它工作正常。但这不适用于 Firefox 57。在 Firefox 中,我们只能关闭使用以下命令打开的窗口。

window.open()

从以下位置找到了一个适用于 Chrome 66 的单线:http : //www.yournewdesigner.com/css-experiments/javascript-window-close-firefox.html

TLDR:诱使浏览器相信 JavaScirpt 打开了当前选项卡/窗口

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

所以为了完整性

<input type="button" name="close" value="close" onclick="window.close();">

虽然还要指出的是,读者可能希望将其放入指纹浏览器需要这种技巧的功能中,因为 Firefox 59 不适用于上述功能。

或者可能是一个不能依赖可能有一天会被修补的黑客......从我在其他地方读到的内容应该允许JavaScript关闭它没有产生的选项卡......尽管在解决方案中,切线可能是允许从一个关闭任意标签插件的范围,但是,这将是过度的,如果因为有允许插件更多的权限只针对一个网域/应用...我还没有完全下潜到网络的应用程序或浏览器插件,所以这是比经验更猜测,顺利,直到我做花即是。
2021-03-21 17:02:24
@RAS,感谢您提供完整版本号的报告!奇怪的是它不起作用,80.0.3987.163因为对于81.0.4044.92(更高版本)第一个 JavaScript 咒语仍然有效。你是不是偶然尝试了 HTML 变体?
2021-03-29 17:02:24
该死,它似乎76在 Linux 上使用 Chrome 正常运行,通过控制台测试...
2021-04-03 17:02:24
也许我做错了什么(尝试在 Google Apps Script 网络应用程序上使用它)
2021-04-12 17:02:24

试试这个:

<script>
    var myWindow = window.open("ANYURL", "MyWindowName", "width=700,height=700");
    this.window.close();
</script>

在某些情况下,这在 Google Chrome 50 中对我有用。不过,当放入 javascript 函数时它似乎不起作用。

那是因为在此上下文this中指代window,而在函数上下文中指代函数;this.window只是window.
2021-03-22 17:02:24