我正在制作Chrome扩展程序以查找我使用browser_action
的网页中的所有链接。我在刷新页面时遇到错误,chrome扩展会自动触发javascript代码。我如何制作它,以便如果你点击浏览器上的刷新,扩展名不会触发?我只想在单击工具栏上的小图标时才能工作。
这就是我的清单的样子
{
"name": "Find all first",
"version": "1.0",
"description": "Find all Linkes",
"browser_action": {
"default_icon": "icon.png",
"popup": "popup.html"
},
"icons": {
"16": "icon.png",
"128": "icon-big.png"
},
"permissions": [
"tabs",
"http://*/*",
"https://*/*"
],
"content_scripts": [ {
"matches": ["http://*/*", "https://*/*"],
"js": ["content.js"]
}]
}
然后我在我的popup.html中调用它
chrome.tabs.executeScript(null, {file: 'content.js'}, function() {
console.log('Success');
});
答案 0 :(得分:7)
由于您的清单中定义了contents_scripts
,因此每次加载与您的content.js
匹配的网页时,matches
都会作为内容脚本运行(因此,任何网页都是如此)。
要在用户单击“页面操作”按钮时仅在页面上运行content.js
,请从清单中删除content_scripts
部分,以便不会自动运行任何脚本。然后,当单击“页面操作”按钮时,popup.html将按原样执行content.js
。