使用插件SDK统计Firefox插件中标题相同的选项卡
我试图统计firefox插件生成器上具有相同特定标题(如Google标题)的firefox选项卡 我知道使用插件SDK统计Firefox插件中标题相同的选项卡,firefox,sdk,tabs,Firefox,Sdk,Tabs,我试图统计firefox插件生成器上具有相同特定标题(如Google标题)的firefox选项卡 我知道 var tabs = require("tabs"); for each (var tab in tabs) 但如何获得同名选项卡的计数? 提前谢谢你 如何获取选项卡的标题?这可能吗?一旦解决了这个问题,就声明一个用于存储标题计数的对象,其中标题就是属性 ttabs_obj = ttabs_obj || {}; // your retrieved tabs titles_count = t
var tabs = require("tabs");
for each (var tab in tabs)
但如何获得同名选项卡的计数?
提前谢谢你 如何获取选项卡的标题?这可能吗?一旦解决了这个问题,就声明一个用于存储标题计数的对象,其中标题就是属性
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;
});
这对我很有用:
//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));
});
选项卡的文档如下所示:
有两个问题:获取选项卡标题和获取每个选项卡标题的出现次数。有关获取选项卡标题的信息,请参见:
有关获取数组中每个项目的出现次数,请参见:
请注意,要查看控制台日志记录,您需要启用它:
附加sdk使用javascript。此代码不能在javascript环境中使用。您是偶然使用jQuery还是纯javascript?