在onDisconnect中确认

问题描述 投票:0回答:1

我正在开发一个弹出窗口扩展程序,我希望在弹出窗口退出用户确认后执行操作。我在后台脚本中尝试了以下代码


browser.runtime.onConnect.addListener(function (externalPort) {
    if (externalPort.name === 'myport') {
        externalPort.onDisconnect.addListener(function () {
                 if (confirm("are you sure?"){
                       doIt();
                 }
        });
    }});

但是我得到一个错误:TypeError: window.gBrowser is undefined。显然,我的后台脚本中没有对话框。有可靠的方法吗?

firefox firefox-webextensions
1个回答
0
投票

Addon的背景页面无法直接显示确认对话框,这是WebExtensions的限制。有一些解决方法:

  • 运行活动选项卡中的包含confirm()的内容脚本。
  • [使用browser.windows.create({ url: 'dialog.html', type: 'popup' });打开对话框,并使用runtime.connect()runtime.sendMessage()之类的WebExtensions API与后台页面进行通信。
© www.soinside.com 2019 - 2024. All rights reserved.