Firefox插件:同步通信



我现在正在寻找一个类或其他东西,它可以与选项卡的Javascript同步通信。

使用默认的API动态操作网站是一件痛苦的事情。如果我们能做这样的事情,那就太好了:

var tabs = require('sdk/tabs');
var exampleElement = tabs.activeTab.document.getElementById('exampleId');
console.log(exampleElement.innerHTML);
exampleElement.style.width = '200px';

那么,有没有一个类/lib允许我这样做,或者你能告诉我如何使这样的事情成为可能吗?我真的是个新手。。。

如前所述,这在插件SDK中是不可能的。您可以使用非SDK代码进行同步通信,但如果Firefox切换到多进程架构,它将停止工作。对于新代码,通常建议使用异步API。

一个选项是使用内置的promise库包装异步调用:

https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/core/promise.html

这种开发风格比同步调用稍微迟钝一点,但在使用多个/嵌套回调时,它确实避免了"回调地狱"。

最新更新