Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
crossrider firefox appAPI.message.toActiveTab_Firefox_Crossrider - Fatal编程技术网

crossrider firefox appAPI.message.toActiveTab

crossrider 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

对于我的扩展,我想检查是否访问了某一组网站。只有在第一次访问这些站点时,我才想调用函数。因此,我的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)
    }
});

一般来说,该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] ++;
    }
});