【发布时间】:2013-10-16 21:21:38
【问题描述】:
我正在使用 crossrider.com 编写便携式浏览器扩展。
我的扩展由前端部分(crossrider:扩展页面范围)和后端部分(crossrider:背景范围)组成。每个浏览器后台运行一次,每个站点调用的前端运行一次。
我的后端提供由前端调用的函数。 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 没有将答案发送到调用后台函数的选项卡,而是发送到当前打开的选项卡 - 这可能在此期间发生了变化。
如何将响应发送到调用后台函数的选项卡?
【问题讨论】:
标签: javascript message javascript-framework crossrider