我正在DevTools中构建Chrome扩展程序。除非我在另一个标签中打开它,否则它很有效。当它在另一个选项卡中打开时,它会为DevTools扩展打开的每个实例加载我的inserted-script.js文件。可能是什么导致了这个?我很乐意分享我的能力,但我不确定从哪里开始。
编辑:这是manifest.json文件:
{
"name": "My DevTools Thing",
"version": "0.5",
"description": "Hello.",
"devtools_page": "devtools.html",
"background": {
"scripts": [
"js/background.js"
]
},
"permissions": [
"activeTab",
"http://*/*",
"https://*/*"
],
"web_accessible_resources": [
"js/content.js"
],
"manifest_version": 2
}
编辑2:添加一些进一步的上下文 - 假设我在选项卡1上打开了devTools,它显示“Hello!”。它第一次打开时会显示一次。
然后我打开一个新标签,打开devTools,然后我的扩展名,它显示:
“你好!”
“你好!”
在我的原始标签上,它现已附加:
“你好!” (原文)
“你好!” (来自新标签)
“你好!” (来自新标签)
如果我打开第三个标签并打开扩展程序......
“你好!” x 3(新标签)
其他标签将附加原始的3“Hello!”。
答案 0 :(得分:0)
您可以使用扩展程序的清单文件控制内容脚本执行,防止内容脚本加载到Iframe或一组特定网址中。以下是清单文件的示例:
"all_frames": true,
"js": [ "ContentOnDocStart.js" ],
"matches": [ "http:///", "https:///" ],
"exclude_matches": [ ],
"run_at": "document_start"
此外,请在每个标签state changes中添加' chrome.tabs.onUpdate.addListener '。