对于我的扩展程序,我想检查是否访问了某些网站。只有第一次访问这些网站我想调用一个函数。因此,我的extension.js检查是否访问了其中一个网站,background.js会跟踪访问量,并在第一次访问时调用extension.js中的函数。这在Firefox中工作正常。似乎根本没有调用addListener。知道为什么吗?
Extension.js
// 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)
}
});
Background.js
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] ++;
}
});