使用附加SDK在Firefox加载项中计算具有相同标题的选项卡

时间:2014-02-22 22:47:23

标签: firefox sdk tabs

我正在尝试在Firefox附加组件构建器上计算具有相同特定标题(如Google标题)的firefox标签。

我知道

var tabs = require("tabs");
for each (var tab in tabs)

但如何获取具有相同名称的标签数? 提前谢谢!

2 个答案:

答案 0 :(得分:0)

如何获得标签的标题?这可能吗?一旦你完成了这项工作,就会声明一个用于存储标题计数的对象,其中标题是属性。

ttabs_obj = ttabs_obj || {}; // your retrieved tabs
titles_count = titles_count || {};
ttabs_obj.forEach(function(tab, titles_count){
    title = ''; //get title from tab here, replacing characters invalid in property names with '_'
    if (!(title in titles_count)) {
        titles_count[title] = 0;
    }
    titles_count[title] += 1;
});

答案 1 :(得分:0)

这对我有用:

//Set up namespace
var app={};
app.tabs = require("sdk/tabs");

//Takes an array and returns an object.
//In this case, keys are tab titles and values are tab counts.
app.summarize=function(arr){
    return arr.reduce(function(memo,item){
        if (typeof memo[item]==='undefined'){
             memo[item]=1;   
        }
        else{
            memo[item]++;           
        }
        return memo;
    },{});
};


//Whenever a tab loads, recalculate and output to console
//Need to enable console logging:
app.tabs.on('ready',function(){
    //app.tabs is a pseudo-array. Convert to array
    var tabsArr=Array.prototype.slice.call(app.tabs);
    var tabsTitles=tabsArr.map(function(tab){
        return tab.title;
    });
    console.log(app.summarize(tabsTitles));
});

标签的文档在这里: https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/tabs

有两个问题:获取标签标题并获取每个标题标题的出现次数。要获取标签标题,请参阅: https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/tabs

要获取数组中每个项目的出现次数,请参阅: http://jsfiddle.net/cz2SG/

请注意,要查看控制台日志记录,您需要启用它: https://blog.mozilla.org/addons/2013/03/27/changes-to-console-log-behaviour-in-sdk-1-14/