crossrider firefox appAPI.message.toActiveTab
对于我的扩展,我想检查是否访问了某一组网站。只有在第一次访问这些站点时,我才想调用函数。因此,我的extension.js会检查这些网站中是否有人访问过,background.js会跟踪访问量,并在第一次访问时调用extension.js中的函数。除了在Firefox中,这一切都很好。似乎根本没有调用addListener。知道为什么吗 Extension.jscrossrider firefox appAPI.message.toActiveTab,firefox,crossrider,Firefox,Crossrider,对于我的扩展,我想检查是否访问了某一组网站。只有在第一次访问这些站点时,我才想调用函数。因此,我的extension.js会检查这些网站中是否有人访问过,background.js会跟踪访问量,并在第一次访问时调用extension.js中的函数。除了在Firefox中,这一切都很好。似乎根本没有调用addListener。知道为什么吗 Extension.js // check if site is visited var websites= ['facebook.com', 'site.co
// check if site is visited
var websites= ['facebook.com', 'site.com', 'anothersite.com'
for (i = 0; i < websites.length; i++) {
if (appAPI.matchPages("*" + websites[i] + "*")) {
// count visit
appAPI.message.toBackground({type:'update', data:i});
}
}
appAPI.message.addListener(function(msg) {
if (msg.type == 'testf') {
// not executed (in Firefox)
}
});
一般来说,该API在Firefox中工作正常,在看不到其余代码的情况下,我可以看到extension.js中存在键入错误:
if(appAPI.matchPages(“*”+webshops[I]+“*”)
;如果我没弄错的话,应该是网站[我]。另外,在background.js文件中,我假定您已经预先填充了变量visited;如果不是,则if(已访问[i]==0)
可能会导致错误。[披露:我是一名Crossrider员工]我试图清理代码,使我的问题更容易理解,很抱歉输入错误(现已编辑)。我还预先填充代码中访问的变量。正如我所说,这一切在Chrome和IE中都能完美运行,但在Firefox中却不行。它统计访问次数,但似乎在首次访问网站时不会向活动选项卡发送消息。也许是因为复杂的结构?但是,我现在使用“页面印象”插件来检索相同的信息:)。谢谢你的努力。所以你不再使用toActiveTab方法,所以这件事就解决了?如果不是这样,请提供扩展id,我很乐意进行测试和调查。
appAPI.message.addListener(function(msg) {
if (msg.type == 'update') {
i = msg.data;
if (visited[i] == 0) {
// call function when visited first time
appAPI.message.toActiveTab({type:'testf'});
}
visited[i] ++;
}
});