检索哪些标签在Chrome中打开?

Ray*_*Ray 8 javascript tabs google-chrome-extension

有没有办法检索所有打开的标签并将它们排序到Chrome中的数组?因此,如果Gmail和YouTube处于打开状态,则阵列中将有两个条目名为"gmail.com"和"youtube.com".

小智 7

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

注意:这需要在清单文件中指定权限"tabs".

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);
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我只是在数组中询问时添加了tab url,但每个"tab"对象包含更多信息.Url将是完整的URL,您可以应用一些正则表达式从URL中提取域名.

  • `chrome.windows`未定义......在这种情况下你做什么? (3认同)

Oli*_*ryn 5

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

您可以在此处查看 Chrome 文档:http : //developer.chrome.com/extensions/devguide.html