我想从JavaScript关闭Firefox标签。请不要误解我。我不是要关闭弹出窗口而是选项卡。我知道JavaScript无法关闭它尚未打开的窗口。因此,我尝试了下面的代码,但它适用于所有浏览器,但不适用于Firefox。
window.open('','_self','');
Window.close();
答案 0 :(得分:5)
如果您有一个/少用户页面并且您可以访问Firefox,则可以更改about:config
设置。
dom.allow_scripts_to_close_windows = true
这可能是一个很大的安全问题!
(在Linux上使用Firefox 27测试)
答案 1 :(得分:3)
这是我从StackOverflow线程中学到的东西(遗憾的是找不到它链接到这个答案):
window.open(document.URL,'_self','resizable=no,top=-245,width=250,height=250,scrollbars=no');
window.close();
关闭窗口/标签。它可以被描述为黑客。从本质上讲,它让浏览器误以为当前窗口是由JavaScript打开的窗口/选项卡。因为规则似乎是JavaScript可以关闭由JavaScript打开的窗口。
适用于Chrome,Firefox。从IE 6到IE 8+,Internet Explorer需要一些额外的处理来解决不同的行为。如果有人有兴趣的话,我也包括在内。
var Browser = navigator.appName;
var indexB = Browser.indexOf('Explorer');
if (indexB > 0) {
var indexV = navigator.userAgent.indexOf('MSIE') + 5;
var Version = navigator.userAgent.substring(indexV, indexV + 1);
if (Version >= 7) {
window.open('', '_self', '');
window.close();
}
else if (Version == 6) {
window.opener = null;
window.close();
}
else {
window.opener = '';
window.close();
}
}
else {
window.close();
}
答案 2 :(得分:2)
您可以尝试使用此代码。 如果是Firefox浏览器。
gBrowser.removeCurrentTab();
答案 3 :(得分:1)
根据Mozilla Firefox Deverlopers论坛,现在不可能。阅读下面的内容。
”过去,当您直接调用窗口对象的close()方法而不是在窗口实例上调用close()时,浏览器会关闭最前面的窗口,无论您的脚本是否创建了该窗口。更长的情况;出于安全原因,不再允许脚本关闭未打开的窗口。(Firefox 46.0.1:脚本无法关闭窗口,但尚未打开)“