2
我正在使用crossrider.com编写便携式浏览器扩展。Crossrider浏览器扩展:前端和背景之间的双向通信
我的扩展由一个前端部分(crossrider:扩展页面范围)和一个后端部分(crossrider:background scope)组成。每个浏览器都会运行一次背景,即每个网站调用的前端。
我的后端提供了由前端调用的函数。 Crossrider为此提供了一个消息传递API。
前端现在想要请求一些数据,后端应该返回它。我选择的方式是:
后端:
appAPI.message.addListener({channel:"functionname"},function(returnval) {
//Calculate some value v
appAPI.message.toActiveTab(v, {channel:"functionname_returnval"});
});
前端:
appAPI.message.addListener({channel:"functionname_returnval"}, function(message) {
//Do something with the return value
});
appAPI.message.toBackground(message,{channel:"functionname"});
这工作,但只,如果用户没有在其间切换标签。 appAPI.message.toActiveTab不幸地不会将答案发送给调用后台函数的选项卡,而是发送给当前打开的选项卡 - 这可能在此期间发生了变化。
如何将响应发送到调用后台函数的选项卡?
在后端部分你的意思是.toAllTabs而不是.toActiveTab? – Heinzi
是的......我错了这个错误,我纠正了这个例子 – Shlomo