0

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

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

简而言之,如果当前选择的选项卡的 url 是我感兴趣的域,我想要做的是在我的扩展程序的弹出窗口中显示一个“订阅按钮”。

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

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

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

4

1 回答 1

1

具有 activeTab 权限的工作示例:

在你的 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>. 由于CSP ,不允许使用内联 JavaScript 。
于 2013-08-04T03:30:16.323 回答