javascript - 为 Firefox 扩展设置弹出窗口标题

标签 javascript firefox firefox-addon-webextensions

我正在构建一个可以在多个浏览器中运行的浏览器扩展。单击浏览器操作时,将创建一个显示扩展页面的弹出窗口。 Chrome 使用弹出页面的 title 标签作为弹出窗口的标题,但 Firefox 没有。

相反,我得到以下内容:

enter image description here

为什么 Firefox 不使用页面标题?为了修复它,我在 windows.create 回调中设置了窗口标题,但这也不起作用。

这是打开弹出窗口的 background.js 脚本。

'use strict';

let browser = (function () {
    return window.msBrowser ||
        window.browser ||
        window.chrome;
})();

var popupWindowId = false;

browser.browserAction.onClicked.addListener(function() {
    // Open the popup if not already open. If open, focus on it.
    if(popupWindowId === false) {
        popupWindowId = true;
        browser.windows.create({
            'url': 'index.html',
            'type': 'popup',
            'height': 525,
            'width': 350
        }, function(win) {
            win.title = 'My Title';
            popupWindowId = win.id;
            firefoxWorkaroundForBlankPanel();
        });

        return;
    } else if(typeof popupWindowId === 'number'){
        // The window is open, and the user clicked the button.
        // Focus the window.
        browser.windows.update(popupWindowId, { focused: true });
    }
});

browser.windows.onRemoved.addListener(function (winId){
    if(popupWindowId === winId){
        popupWindowId = false;
    }
});

// workaround for bug https://bugzilla.mozilla.org/show_bug.cgi?id=1425829
// bug causes popup to appear blank until resized
async function firefoxWorkaroundForBlankPanel () {
    const {id, width, height} = await browser.windows.getCurrent();
    browser.windows.update(id, {
        height: height + 1
    });
}

最佳答案

很遗憾,您无法从弹出窗口标题中删除扩展程序 URL。根据这个Mozilla bug report discussion这是故意的,以防止恶意扩展的欺骗/网络钓鱼尝试(例如,通过欺骗用户扩展弹出窗口是浏览器 UI 的一部分)。但至少他们可能会将其更改为在窗口标题中显示“扩展程序 [扩展程序名称]”,而不是丑陋的扩展程序 URL。

关于javascript - 为 Firefox 扩展设置弹出窗口标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50587883/

相关文章:

javascript - Firefox Add-on SDK 仅在重启时重新加载扩展

javascript - 验证 Javascript 中的数字在 Firefox 中不起作用

javascript - Websockets - 在 onmessage() 之外传递数据

javascript - 向表格添加 + 号,显示更多行

javascript - 如何从表单中的表中删除最后一行,而没有插入数据的其他行?

javascript - 如何在模态打开关闭后找到表格行

javascript - 将 Intl.NumberFormat 与 'de' 区域设置和 'percent' 样式一起使用

javascript - 如何获取网络扩展图标来调用javascript

css - Firefox:Windows Firefox Web 扩展图标背后的黑色背景

javascript - Firestore 查询具有多个值的循环