Firefox附加组件:同步通信?

时间:2013-12-07 03:05:27

标签: javascript firefox firefox-addon firefox-addon-sdk synchronous

我正在寻找能够与标签的Javascript同步通信的类或其他东西。

使用默认API动态操作网站是一件痛苦的事。 如果我们能做到这样的话会很棒:

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

那么是否有一个类/ lib可以让我这样做,或者你能告诉我如何才能做出类似的东西吗?我真的很陌生......

2 个答案:

答案 0 :(得分:2)

如上所述[{3}},使用插件SDK是不可能的。您可以使用非SDK代码进行同步通信,但如果Firefox切换到多进程体系结构,它将停止工作。通常建议坚持使用新代码的异步API。

答案 1 :(得分:2)

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

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

这种开发方式比同步调用更加迟钝,但在使用多个/嵌套回调时它确实避免了“回调地狱”。