gpt4 book ai didi

javascript - 使 Firefox addon-sdk 处理多个选项卡

转载 作者:行者123 更新时间:2023-11-30 13:02:16 25 4
gpt4 key购买 nike

我使用它的附加组件构建器 SDK 为 Firefox 制作了一个附加组件。起初它工作得很好,但是当我切换标签时它开始表现得很奇怪并且失去了它的功能。我知道我一定遗漏了一些东西,它可能与脚本之间的通信有关,但我不知道是什么。

我没有发布代码,而是公开了扩展,这里是 link .

如果您仍然需要我发布代码,但您不应该发布代码,请告诉我,我会做的。告诉我应该怎么做才能使我的扩展程序分别但同时在多个选项卡上运行。

最佳答案

在我看来,第 59-64 行实际上应该在 attachTabWorker 函数中。您只需要保存用于面板的worker到当前worker的通信即可。

我会像这样连接你的端口通信:

function attachTabWorker(tab) {
// Attach and store
var tabWorker = tabWorkers[tab.id] = tab.attach({
contentScriptFile: [data.url("clear.js"),data.url("jquery.js")]
});
// Clean up
tabWorker.on("detach", function() {
if (getTabWorker(tab) === tabWorker) {
delete tabWorkers[tab.id];
}
});
tabWorker.port.on('hiderOn',function(tag){
panel1.port.emit('hiderOn', tag);
});
tabWorker.port.on('hiderOff',function(tag){
panel1.port.emit('hiderOff', tag);
});
}

否则,您只会在 activeTab 首次运行时获得端口通信链接设置,而不是像我相信您想要的那样为每个选项卡设置端口通信链接。代码 getActiveTabWorker().port.on... 在加载项启动时运行一次,它仅为 activeTab 而不是所有选项卡创建监听器。我希望这是有道理的。

关于javascript - 使 Firefox addon-sdk 处理多个选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16985494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com