2012-07-15 115 views
0

我想做一些类似google邮件检查器的事情:当用户点击图标时 - 我们应该在新标签页中打开一些网址,但只有在带有该网址的标签页没有在标签页内打开的情况下。如何处理点击扩展图标?

请帮助我,如何轻松做到这一点。

谢谢!

回答

4
  1. 在清单
  2. 定义Browser action附加一个事件监听器chrome.browserAction.onClicked
  3. 使用chrome.tabs.create方法打开一个新选项卡。您可以遍历所有选项卡以检查是否存在与chrome.windows.getAll的URL。
+0

我一直在努力做到这一点,但我不需要任何弹出。并改进问题:如何在没有弹出窗口的情况下执行此操作..不幸的是,我无法做到这一点。 – ValeriiVasin 2012-07-16 07:53:27

+0

@InviS不要在清单文件中指定''default_popup“条目。 – 2012-07-16 09:08:26

+0

但设置的JavaScript?我试图将其设置为后台脚本,但它不起作用......以及如何直接用\ @回答您?像@InviS – ValeriiVasin 2012-07-17 05:50:07

1

您可以使用此片段。它检查包含URL(或可选匹配模式)的选项卡是否已打开。如果是这样,该选项卡将集中并加载URL。如果不是这样,新标签打开:

function reuseTab(url, match) { 
    if (url) { 
     var match = match || url; 
     chrome.tabs.query({url : match}, function (foundTabs) { 
      if (foundTabs[0]) { 
       chrome.tabs.update(foundTabs[0].id, {active : true, url : url}); 
      } else { 
       chrome.tabs.create({url : url}); 
      } 
     }); 
    } 
} 

您可以在GitHub上看到使用的例子,并说明详细的注释:

https://github.com/fczbkk/chrome-extension-snippets/blob/master/js/reuse-tab.js