如何检查特定页面是否已在Google Chrome中打开?

木川 *_* 炎星 9 javascript tabs google-chrome web-applications

基本上,我有一个打包的Web应用程序,如果Web应用程序的任何其他实例打开,我希望能够检查它,如果是的话,切换到打开的实例而不是创建另一个一.

此外,对于选项页面,我希望它能够检查应用程序是否已打开,如果是,则在选项页面已更改时刷新应用程序页面.

我一直在阅读有关chrome.tabs JavaScript模块的文档,但我无法弄清楚如何使函数查找特定的选项卡.我不太明白如何查找或设置特定选项卡的选项卡ID.我想这就是我想做的事情,但是如果我吵来了错误的树,请告诉我.

如果这里的任何人能够更好地为我解释,我会非常感激.

Jos*_*Lee 7

查看具有此功能的Google Mail Checker扩展程序:

function goToInbox() {
  chrome.tabs.getAllInWindow(undefined, function(tabs) {
    for (var i = 0, tab; tab = tabs[i]; i++) {
      if (tab.url && isGmailUrl(tab.url)) {
        chrome.tabs.update(tab.id, {selected: true});
        return;
      }
    }
    chrome.tabs.create({url: getGmailUrl()});
  });
}
Run Code Online (Sandbox Code Playgroud)

特别是,传递getAllInWindow windowId(或当前窗口未定义)和一个接收Tab对象数组的函数.您不直接修改选项卡的属性; 而是将其id传递给更新函数以便操作它.