关闭窗口与JavaScript后台脚本? (Firefox扩展)

时间:2018-02-12 06:16:48

标签: javascript html firefox firefox-addon firefox-webextensions

我目前正在编写一个Firefox扩展程序,在我的后台脚本中打开一个新窗口。当用户单击页面上的按钮时,后台脚本将执行并打开窗口。

到目前为止,我有:

// content script
downloadMod(linkToOpen); //button clicked
function downloadMod(url) {
    // var test = window.open(url, '_blank');
    var myPort = browser.runtime.connect({ name: "cac410c4672fff93bf0d3186636d8876de3dfeb6@temporary-addon"});
    myPort.postMessage({ greeting: url });
}

在我的后台脚本中(上面代码也连接的脚本)我有:

//background script
portFromCS.onMessage.addListener(function (m) {
        var test = browser.windows.create({
            url: m.greeting,
            allowScriptsToClose: true,
        });

注意:所有代码都按预期工作。但是,关闭窗口时会出现问题。

我尝试了 self.close() window.close()的各种变体。我甚至创建了一个函数来等待5秒钟来加载新创建的窗口,然后关闭页面无济于事。我的所有尝试都回来了错误:

脚本可能无法关闭脚本未打开的窗口。

我认为应该使用 allowScriptsToClose 标记删除此错误?

1 个答案:

答案 0 :(得分:0)

要关闭使用browser.windows.create创建的窗口,需要使用browser.windows.remove。

所以:

  private static final String CCTABLE_CREATE =
            "create table Creditcard_Details ( _ccid integer primary key , "
            + "cuname text not null, ccno text not null, " 
            + "cvvno text not null, " + "expdate text not null )";//+ "FOREIGN KEY(_ccid) REFERENCES User_Details(_id))";