Javascript 如何关闭浏览器窗口中的当前选项卡?
我想在网页上创建一个链接,该链接将关闭浏览器中当前活动的选项卡,而不关闭浏览器中的其他选项卡Javascript 如何关闭浏览器窗口中的当前选项卡?,javascript,html,hyperlink,Javascript,Html,Hyperlink,我想在网页上创建一个链接,该链接将关闭浏览器中当前活动的选项卡,而不关闭浏览器中的其他选项卡当用户单击关闭链接时,会出现一条警告消息,要求用户用两个按钮“是”和“否”进行确认。如果用户单击“是”,则关闭该页面,如果单击“否”,则不执行任何操作 怎样才能做到呢?有什么建议吗?要做到这一点,您需要Javascript。使用: 注意:暗示当前选项卡。这相当于: window.close(); 也可以指定其他窗口 因此: 使用HTML: <a href="javascript:close_win
当用户单击关闭链接时,会出现一条警告消息,要求用户用两个按钮“是”和“否”进行确认。如果用户单击“是”,则关闭该页面,如果单击“否”,则不执行任何操作
怎样才能做到呢?有什么建议吗?要做到这一点,您需要Javascript。使用: 注意:暗示当前选项卡。这相当于:
window.close();
也可以指定其他窗口
因此:
使用HTML:
<a href="javascript:close_window();">close</a>
或:
您可以在此处返回false
,以防止事件的默认行为。否则,浏览器将尝试转到该URL(显然不是)
现在对话框上的选项将是“确定”和“取消”(不是“是”和“否”)。如果您真的想要“是”和“否”,您需要创建某种模式Javascript对话框
注意:与上述内容存在特定于浏览器的差异。如果使用Javascript打开窗口(通过
window.open()
),则允许使用Javascript关闭窗口。Firefox不允许您关闭其他窗口。我相信IE会要求用户确认。其他浏览器可能会有所不同。以下是创建此类链接的方法:
此方法适用于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>
在FF 18和Chrome 24中成功测试: 在标题中插入:
<script>
function closeWindow() {
window.open('','_parent','');
window.close();
}
</script>
函数closeWindow(){
窗口。打开(“”,“”,“”);
window.close();
}
HTML:
学分转到。试试这个
<a href="javascript:window.open('','_self').close();">close</a>
这是解决相同问题的一种方法,声明如下JavaScript函数
<script>
function Exit() {
var x=confirm('Are You sure want to exit:');
if(x) window.close();
}
</script>
函数Exit(){
var x=confirm('您确定要退出吗:');
if(x)window.close();
}
在HTML中添加以下行以使用
单击退出
也试试这个。在所有三大浏览器上为我工作
<!-- saved from url=(0014)about:internet -->
<a href="#" onclick="javascript:window.close();opener.window.focus();" >Close Window</a>
这是可能的。我搜索了整个网络,但有一次当我接受微软的调查时,我终于得到了答案 试试这个:
window.top.close();
这将为您关闭当前选项卡。以下内容在Chrome 41中适用:
function leave() {
var myWindow = window.open("", "_self");
myWindow.document.write("");
setTimeout (function() {myWindow.close();},1000);
}
我尝试了几种FF的想法,包括打开一个实际的网页,但似乎没有任何效果。据我所知,任何浏览器都会关闭一个带有xxx.close()的选项卡或窗口,如果它确实是由JS打开的,但至少不能通过打开该选项卡内的新内容来欺骗FF关闭该选项卡
想想看,这是有道理的——用户可能不希望JS关闭一个具有有用历史记录的选项卡或窗口。据我所知,在Chrome或FireFox中已经不可能了。这在IE中仍然是可能的(至少是pre Edge)。有点晚了,但这就是我发现的
window.close()
仅当您试图close()
的窗口是由使用window.open()方法的脚本打开时才起作用(即例外)
!!(请参阅下面@killstreet关于目标为空的锚定标签的评论)
TLDR:chrome和firefox允许关闭它们
您将看到控制台错误:
脚本不能关闭未由脚本打开的窗口。
作为一个错误,没有别的
您可以在URL中添加一个唯一的参数,以了解页面是否是通过脚本打开的(如time),但这只是一种黑客行为,而不是本机功能,在某些情况下会失败
我找不到任何方法知道页面是否从open()打开,
并且关闭时不会抛出错误。
这不会打印“测试”:
您可以阅读对于仍在访问此页面的用户,您只能关闭由脚本打开的选项卡,或使用HTML的锚定标记(target为空)。这两个都可以使用
<script>
window.close();
</script>
window.close();
关闭窗口
这为我做了工作很抱歉发布了这篇文章,但我最近实现了一个本地托管的站点,该站点需要关闭当前浏览器选项卡的功能,并且发现了一些有趣的解决方法,这些方法在我能找到的任何地方都没有很好的文档记录,所以我自己就这么做了 注意:这些解决方案是在考虑本地托管站点的情况下完成的,并且(除Edge外)需要专门配置浏览器,因此对于公共托管站点来说并不理想
背景: 过去,jQuery脚本
window.close()
能够在大多数浏览器上关闭当前选项卡,而不会出现问题。但是,大多数现代浏览器不再支持此脚本,可能是出于安全原因
当前功能:
window.close()
将在脚本打开的选项卡上工作,或锚定打开的选项卡上使用target=“\u blank”
(在新选项卡中打开)
参见@killstreet对@calios答案的评论
浏览器特定的解决方法: 谷歌浏览器: Chrome不允许运行window.close()脚本,如果您尝试使用它,则不会发生任何事情。但是,通过使用Chrome插件TamperMonkey,我们可以使用window.close()方法如果
/@grant window.close
包含在TamperMonkey的用户脚本头中
例如,我的脚本(当单击id为“关闭页面”的按钮并在浏览器弹出窗口上按“是”时触发)如下所示:
// ==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有一个高级设置,您可以使用c
<!-- saved from url=(0014)about:internet -->
<a href="#" onclick="javascript:window.close();opener.window.focus();" >Close Window</a>
window.top.close();
function leave() {
var myWindow = window.open("", "_self");
myWindow.document.write("");
setTimeout (function() {myWindow.close();},1000);
}
try{
window.close();
}
catch (e){
console.log("text");
}
<script>
window.close();
</script>
<button class="closeButton" style="cursor: pointer" onclick="window.close();">Close Window</button>
// ==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();
}
});
})();
<script>
$("#close_page").click(function() {
var confirm_result = confirm("Are you sure you want to quit?");
if (confirm_result == true) {
window.close();
}
});
</script>
function closeWindow() {
if(window.confirm('Are you sure?')) {
window.alert('Closing window')
window.open('', '_self')
window.close()
}
else {
alert('Cancelled!')
}
}
Some content
<button onclick='closeWindow()'>Close Current Window!</button>
More content