2012-08-11 27 views
8

有没有办法检索所有打开的标签并将它们分类到Chrome中的数组?因此,如果Gmail和YouTube已打开,则阵列中会有两个名为“gmail.com”和“youtube.com”的条目。检索哪些标签在Chrome中打开?

回答

9

是的,这里是你如何能做到这一点:

注:这需要权限“选项卡”在您的清单文件中指定。

chrome.windows.getAll({populate:true}, getAllOpenWindows); 

function getAllOpenWindows(winData) { 

    var tabs = []; 
    for (var i in winData) { 
    if (winData[i].focused === true) { 
     var winTabs = winData[i].tabs; 
     var totTabs = winTabs.length; 
     for (var j=0; j<totTabs;j++) { 
      tabs.push(winTabs[j].url); 
     } 
    } 
    } 
    console.log(tabs); 
} 

在这个例子中,我只是添加标签的网址,你在一个数组问道但每个“选项卡”对象包含了更多的信息。 Url将是完整的URL,您可以应用一些正则表达式从URL中提取域名。

+1

如何在清单文件中指定“选项卡”权限?我应该在清单文件中写入什么来启用此选项? – 2012-08-23 21:27:52

+0

'chrome.windows'未定义...在这种情况下你做了什么? – 2016-10-23 12:22:31

3

除非您正在构建插件,否则我不知道要如何检索打开的选项卡的所有名称,特别是如果选项卡包含来自不同域的内容。如果你能做到这样的事情,那可能是一个相当安全的问题!

您可以查看Chrome文档浏览:http://developer.chrome.com/extensions/devguide.html

+0

我正在构建Chrome插件。 – Ray 2012-08-11 15:31:05

+0

这是个坏消息,因为我试图将所有标签从Chrome手动迁移到Firefox(另一个方向很简单,因为我可以让Firefox在Chrome://级别运行任何脚本)。 – lilydjwg 2015-11-22 09:18:39

相关问题