使用没有选项卡权限的弹出窗口检查chrome扩展中的选项卡状态

时间:2013-08-04 02:48:25

标签: google-chrome google-chrome-extension tabs permissions popup

我目前正在尝试构建我的第一个chrome扩展程序,我只需要它与几个域的页面进行交互,所以我想避免使用“tabs”权限,因为我知道它会让我请求访问所有信息和所有领域。

相反,我想限制自己使用aciveTab权限,如果需要,还可以使用内容脚本。

简而言之,我想要做的是在我的扩展程序弹出窗口中显示“订阅按钮”,如果当前所选标签的网址是我感兴趣的域名。

我可以在使用内容脚本创建页面时获取页面的网址,但我不知道如何确保用户在点击我的扩展程序时仍然在该页面上。

我还没有设法使用activeTab完成任何事情。

提前感谢您提供的任何建议,我会在下班后检查答案(如果有的话)。

1 个答案:

答案 0 :(得分:1)

使用activeTab permisison的一个工作示例:

在你的popup.js

chrome.tabs.query({lastFocusedWindow: true, active: true}, function(tabs) {
  if (tabs && tabs[0] && tabs[0].url) {
    var match = tabs[0].url.match(/^[^:]+:\/\/([^\/]+)/);
    if (match) {
      var domain = match[1];
      if (domain == 'stackoverflow.com')
        alert('test');
    }
  }
});

注意:

  1. 您必须在清单中声明“activeTab”权限(当然)。
  2. JavaScript代码必须位于独立文件中,并包含在带有<script src="..."></script>的popup.html中。由于CSP
  3. 不允许使用内联JavaScript