Answers:
您将需要Javascript来执行此操作。用途window.close()
:
close();
注意:隐含当前选项卡。这等效于:
window.close();
或者您可以指定其他窗口。
所以:
function close_window() {
if (confirm("Close Window?")) {
close();
}
}
使用HTML:
<a href="javascript:close_window();">close</a>
要么:
<a href="#" onclick="close_window();return false;">close</a>
您return false
在这里防止事件的默认行为。否则,浏览器将尝试转到该URL(显然不是)。
现在,window.confirm()
对话框上的选项将为“确定”和“取消”(不是“是”和“否”)。如果您确实想要“是”和“否”,则需要创建某种模式的Javascript对话框。
注意:上述内容与浏览器特定。如果您使用Javascript(通过window.open()
)打开了窗口,则可以使用JavaScript关闭该窗口。Firefox不允许您关闭其他窗口。我相信IE会要求用户确认。其他浏览器可能会有所不同。
about:config
dom.allow_scripts_to_close_windows = true
可能是在Firefox中的解决方案(可能是一个很大的安全隐患!)
尝试这个
<a href="javascript:window.open('','_self').close();">close</a>
此方法适用于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>
open(location, '_self').close();
据我所知,Chrome或FireFox不再支持。在IE中(至少在Edge之前)仍然可能。
有可能的。我在整个网络中搜索了此内容,但是当我参加了Microsoft的一项调查时,我终于找到了答案。
尝试这个:
window.top.close();
这将为您关闭当前选项卡。
已在FF 18和Chrome 24中成功测试:
插入头部:
<script>
function closeWindow() {
window.open('','_parent','');
window.close();
}
</script>
HTML:
<a href="javascript:closeWindow();">Close Window</a>
也尝试一下。在所有三种主要浏览器上为我工作。
<!-- saved from url=(0014)about:internet -->
<a href="#" onclick="javascript:window.close();opener.window.focus();" >Close Window</a>
以下内容适用于Chrome 41:
function leave() {
var myWindow = window.open("", "_self");
myWindow.document.write("");
setTimeout (function() {myWindow.close();},1000);
}
我为FF尝试了几种想法,包括打开实际的网页,但似乎没有任何效果。据我了解,任何浏览器将关闭一个标签或窗口xxx.close()如果这是真的 JS打开了,但是至少FF无法欺骗通过在该选项卡中打开新内容来关闭该选项卡。
当您考虑时,这很有意义-用户可能不希望JS关闭具有有用历史记录的选项卡或窗口。
不好意思,但是我最近实现了一个本地托管的站点,该站点需要能够关闭当前浏览器选项卡,并且发现一些有趣的变通办法,这些地方在我找不到的任何地方都没有得到很好的记录,因此请我自己去做。
注意:这些变通办法是在考虑本地托管站点的情况下完成的,并且(Edge除外)要求专门配置浏览器,因此对于公共托管站点而言不是理想的选择。
上下文:过去,jQuery脚本window.close()
能够关闭大多数浏览器上的当前选项卡而不会出现问题。但是,现代浏览器可能出于安全原因不再支持此脚本。
Chrome不允许运行window.close()脚本,如果尝试使用它,则不会发生任何事情。通过使用Chrome插件TamperMonkey,如果您将TamperMonkey的UserScript标头包含在内,我们可以使用window.close()方法。// @grant window.close
例如,我的脚本(当单击id ='close_page'的按钮并在浏览器弹出窗口上按下'yes'时触发)
// ==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。
这使您可以使用 window.close()
其他脚本一样直接在jQuery文件中方法。
例如,此脚本在将首选项设置为true时可以完美运行:
<script>
$("#close_page").click(function() {
var confirm_result = confirm("Are you sure you want to quit?");
if (confirm_result == true) {
window.close();
}
});
</script>
这比Chrome解决方法的效果要好得多,因为它允许用户关闭当前选项卡,即使它是唯一打开的选项卡,也不需要第三方插件。但是一个缺点是,它也使该脚本可以在不同的网站上运行(而不仅仅是您打算在其上使用的网站),因此有潜在的安全隐患,尽管我无法想象关闭当前选项卡特别危险。
令人失望的是,Edge实际上在我尝试过的所有3种浏览器中都表现最佳,并且window.close()
无需任何配置即可使用该方法。当window.close()
脚本运行,额外的弹出提示您的网页正试图关闭当前标签,并询问是否要继续。
最后说明: Chrome和Firefox的解决方案都是针对浏览器有意禁用(可能出于安全原因)的解决方法。它们都还要求用户事先配置其浏览器以使其兼容,因此对于打算供公众使用的站点可能不可行,但对于像我的本地托管解决方案是理想的。
希望这对您有所帮助!:)
对于仍在访问此页面的人,只允许您关闭由脚本或通过将HTML的定位标记与目标_blank一起使用打开的选项卡。这两个都可以使用
<script>
window.close();
</script>
有点晚了,但这就是我发现的...
window.close()
仅当您尝试close()
使用window.open()方法的脚本打开了您要尝试打开的窗口时,IE才起作用。
!(请参阅下面@killstreet关于目标_blank的锚标记的评论)
TLDR:chrome和firefox允许关闭它们。
您将收到控制台错误:脚本可能无法关闭脚本未打开的窗口。作为错误,仅此而已。
您可以在URL中添加一个唯一参数,以了解是否从脚本中打开了页面(例如时间)- 但它只是一个hack,而不是本机功能,在某些情况下会失败。
我找不到任何方法可以知道该页面是否从open()打开,并且关闭不会引发错误。 这不会打印 “测试”:
try{
window.close();
}
catch (e){
console.log("text");
}
您可以在MDN中阅读更多有关close()函数的信息
创建这种链接的方法如下:
<a href="javascript:if(confirm('Close window?'))window.close()">close</a>
这是解决相同问题的一种方法,像这样声明一个JavaScript函数
<script>
function Exit() {
var x=confirm('Are You sure want to exit:');
if(x) window.close();
}
</script>
将以下行添加到HTML中,以使用 <button>
<button name='closeIt' onClick="Exit()" >Click to exit </Button>