从javascript关闭Firefox选项卡



我想从JavaScript关闭Firefox标签。请不要误解我。我不是在尝试关闭弹出窗口,而是要关闭选项卡。我知道JavaScript无法关闭它尚未打开的窗口。因此,我尝试了以下代码,但它适用于所有浏览器,但不适用于 Firefox。

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

如果你有一个单/几个用户的页面,并且你可以访问Firefoxes,你可以更改about:config设置。

dom.allow_scripts_to_close_windows = true

这可能是一个很大的安全问题!

(在 Linux 上使用 Firefox 27 进行测试(

这是我

从StackOverflow线程中学到的东西(不幸的是找不到它来链接到这个答案(:

window.open(document.URL,'_self','resizable=no,top=-245,width=250,height=250,scrollbars=no');
window.close();

这将关闭窗口/选项卡。它可以被描述为黑客。从本质上讲,它欺骗了浏览器,使其认为当前窗口是由JavaScript打开的窗口/选项卡。因为规则似乎是 JavaScript 可以关闭由 JavaScript 打开的窗口。

它适用于Chrome,Firefox。Internet Explorer 需要一些额外的处理来解释从 IE 6 到 IE 8+ 以来的不同行为。如果有人感兴趣,我也包括在内。

            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();
            }

你可以试试这段代码。如果是火狐浏览器。

gBrowser.removeCurrentTab();

根据Mozilla Firefox Deverlopers论坛,现在是不可能的。请阅读下文。

"过去,当你直接调用窗口对象的close((方法,而不是在窗口实例上调用close((时,浏览器会关闭最前面的窗口,无论你的脚本是否创建了该窗口。情况已不再如此;出于安全原因,不再允许脚本关闭未打开的窗口。(Firefox 46.0.1:脚本无法关闭窗口,它们没有打开(">

最新更新