我看起来很好看,但我似乎无法找到并回答这个问题(好吧,无论如何,这个问题对我有用)。
我制作了一个Chrome扩展程序,只需单击图标即可运行我的内容脚本中的代码,但它会在页面加载后立即运行。有没有办法防止这种情况发生?我可以为run_at输入的任何可能字符串都不能满足此要求。
以下是两个脚本中的示例代码:
内容脚本:
function runIt() {
console.log('working');
}
runIt();
background.js:
chrome.browserAction.onClicked.addListener(function(activeTab) {
chrome.tabs.executeScript(null, {file: "content.js"});
});
一旦页面加载,它就会记录'工作',然后在每次按钮后点击。有没有办法在页面加载后立即停止运行?
提前感谢所有贡献。
答案 0 :(得分:11)
背景页面中的browserAction.onClicked
代码完全符合您的要求。如果您希望阻止content.js
在页面加载时作为内容脚本运行,只需不要将其作为内容脚本包含在您的清单中。
具体来说,在您的manifest.json
文件中,您有一些看起来像这样的行:
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["content.js"]
}
],
只需删除这些行,脚本就会在页面加载时停止运行,而点击监听器代码将继续有效。