我目前正在编写一个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 标记删除此错误?
答案 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))";