Chrome扩展程序内容脚本未触发代码

口号

我正在尝试获取用户访问的每个新页面的URL。我找到了一个说要使用的SO答案,content_scripts因此将其放在清单中:

"permissions": [
  "tabs"
],
"content_scripts": [
{
  "matches": ["<all_urls>"],
  "js": ["js/background.js"]
}

我也尝试过这样的比赛:

"matches": ["http://*/*", "https://*/*"],

这是我的background.js文件:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    alert(changeInfo.url);
});

chrome.tabs.onActivated.addListener(function(activeInfo) {
  // how to fetch tab url using activeInfo.tabid
  chrome.tabs.get(activeInfo.tabId, function(tab){
     console.log(tab.url);
  });
});

alert("BACON");

重新加载扩展程序,然后打开新的选项卡并转到各个网站后,什么都不会触发。有人可以帮我弄清楚我在做什么错吗?谢谢!

潘特利斯·佩斯利

根据内容脚本文档

内容脚本有一些限制。他们不能使用chrome。* API,但以下情况除外:

  • 扩展名(getURL,inIncognitoContext,lastError,onRequest,sendRequest)
  • i18n
  • 运行时(connect,getManifest,getURL,id,onConnect,onMessage,sendMessage)
  • 贮存

解决方案:为了访问chrome.tabsAPI,您应该使用后台页面脚本。

另请注意,根据chrome.tabs API文档

您可以使用大多数chrome.tabs方法和事件,而无需在扩展的清单文件中声明任何权限。但是,如果您需要访问的url,title或favIconUrl属性tabs.Tab,则必须"tabs"在清单中声明权限

manifest.json

...
"permissions": [
  "tabs"
],
"background": {
  "scripts": ["background.js"]
},
...

background.js

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
  if (changeInfo.status==='loading' && changeInfo.url) {
    alert(changeInfo.url);
  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Chrome扩展程序内容脚本未触发代码

来自分类Dev

Chrome扩展程序的内容脚本未注入特定网站

来自分类Dev

Chrome扩展程序的内容脚本未注入特定网站

来自分类Dev

Chrome扩展程序DOMContentLoaded未触发

来自分类Dev

Chrome扩展程序警报未触发

来自分类Dev

在Chrome扩展程序中停止内容脚本

来自分类Dev

Chrome扩展程序内容脚本访问扩展程序框架

来自分类Dev

Chrome扩展程序内容脚本未插入大多数页面

来自分类Dev

Chrome扩展程序内容脚本未插入大多数页面

来自分类Dev

Chrome扩展程序未在文档开始时运行脚本并且未打印内容

来自分类Dev

如何在Chrome扩展程序的内容脚本之间重复使用代码?

来自分类Dev

在Chrome扩展程序中将远程脚本作为内容脚本

来自分类Dev

在注入的脚本和Google Chrome扩展程序代码/内容脚本之间传递消息的最安全方法是什么?

来自分类Dev

Chrome扩展程序API未触发onChanged事件

来自分类Dev

Chrome扩展程序内容脚本:click()和异步结果

来自分类Dev

如何自动测试Chrome扩展程序中的内容脚本?

来自分类Dev

Chrome扩展程序:检查内容脚本是否已注入

来自分类Dev

从Chrome扩展程序中的内容脚本传递消息

来自分类Dev

Chrome扩展程序内容脚本自定义ui

来自分类Dev

从Chrome扩展程序内容脚本创建Web Worker

来自分类Dev

将按钮注入网站(Chrome扩展程序内容脚本)

来自分类Dev

Chrome扩展程序:如何全局捕获/处理内容脚本错误?

来自分类Dev

Chrome扩展程序内容脚本不起作用

来自分类Dev

Chrome扩展程序后台页面和内容脚本同步

来自分类Dev

动态地注入内容脚本 - Chrome扩展程序

来自分类Dev

如何选择何时启动Chrome扩展程序的内容脚本?

来自分类Dev

从Chrome扩展程序中的内容脚本传递消息

来自分类Dev

是否可以通过Chrome扩展程序内容脚本修改Cookie?

来自分类Dev

从Chrome扩展程序内容脚本创建Web Worker

Related 相关文章

  1. 1

    Chrome扩展程序内容脚本未触发代码

  2. 2

    Chrome扩展程序的内容脚本未注入特定网站

  3. 3

    Chrome扩展程序的内容脚本未注入特定网站

  4. 4

    Chrome扩展程序DOMContentLoaded未触发

  5. 5

    Chrome扩展程序警报未触发

  6. 6

    在Chrome扩展程序中停止内容脚本

  7. 7

    Chrome扩展程序内容脚本访问扩展程序框架

  8. 8

    Chrome扩展程序内容脚本未插入大多数页面

  9. 9

    Chrome扩展程序内容脚本未插入大多数页面

  10. 10

    Chrome扩展程序未在文档开始时运行脚本并且未打印内容

  11. 11

    如何在Chrome扩展程序的内容脚本之间重复使用代码?

  12. 12

    在Chrome扩展程序中将远程脚本作为内容脚本

  13. 13

    在注入的脚本和Google Chrome扩展程序代码/内容脚本之间传递消息的最安全方法是什么?

  14. 14

    Chrome扩展程序API未触发onChanged事件

  15. 15

    Chrome扩展程序内容脚本:click()和异步结果

  16. 16

    如何自动测试Chrome扩展程序中的内容脚本?

  17. 17

    Chrome扩展程序:检查内容脚本是否已注入

  18. 18

    从Chrome扩展程序中的内容脚本传递消息

  19. 19

    Chrome扩展程序内容脚本自定义ui

  20. 20

    从Chrome扩展程序内容脚本创建Web Worker

  21. 21

    将按钮注入网站(Chrome扩展程序内容脚本)

  22. 22

    Chrome扩展程序:如何全局捕获/处理内容脚本错误?

  23. 23

    Chrome扩展程序内容脚本不起作用

  24. 24

    Chrome扩展程序后台页面和内容脚本同步

  25. 25

    动态地注入内容脚本 - Chrome扩展程序

  26. 26

    如何选择何时启动Chrome扩展程序的内容脚本?

  27. 27

    从Chrome扩展程序中的内容脚本传递消息

  28. 28

    是否可以通过Chrome扩展程序内容脚本修改Cookie?

  29. 29

    从Chrome扩展程序内容脚本创建Web Worker

热门标签

归档