刷新页面后才加载Chrome扩展程序内容脚本

娜塔莉(Natalie Chouinard)

我有一个要在Trello板上运行的Chrome扩展程序内容脚本。目前,它仅包含:

console.log("Hello, world!");

当您通过内部链接打开Trello面板页面时(例如从“我的面板”页面中打开),内容脚本不会运行。它确实在刷新页面后运行。

我的清单文件包含:

{
  "manifest_version": 2,

  "name": "Temp Ext",
  "version": "1.0",

  "content_scripts": [
    {
      "matches": ["*://trello.com/b/*"],
      "js":["contentscript.js"]
    }
  ]
}

谁能帮我弄清楚为什么最初加载页面时脚本不运行?

编辑:更正的问题。仅在以下内部链接之后发生问题,而不是任何链接之后发生。

娜塔莉(Natalie Chouinard)

问题是Trello使用HTML5的pushState进行页面转换,因此在打开面板后并不总是运行内容脚本。

解决方案

更改以体现:

{
  "manifest_version": 2,

  "name": "Temp Ext",
  "version": "1.1",

  "content_scripts": [{
    "matches": ["*://trello.com/*"],
    "js":["contentscript.js"]
  }],

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

  "permissions": [
    "*://trello.com/*", "tabs", "webNavigation"
  ]
}

添加背景脚本:

chrome.webNavigation.onHistoryStateUpdated.addListener(function(details) {
    chrome.tabs.executeScript(null,{file:"contentscript.js"});
});

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章