我有一个要在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"]
}
]
}
谁能帮我弄清楚为什么最初加载页面时脚本不运行?
编辑:更正的问题。仅在以下内部链接之后发生问题,而不是任何链接之后发生。
问题是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] 删除。
我来说两句