11

我已经看得很清楚了,但我似乎无法找到并回答这个问题(好吧,无论如何都对我有用)。

我制作了一个 Chrome 扩展程序,它应该只在单击图标时运行我的内容脚本中的代码,但它总是在页面加载后立即运行。有没有办法防止这种情况发生?我可以为 run_at 输入的所有可能的字符串都不能真正满足这一点。

这是两个脚本中的示例代码:

内容脚本:

function runIt() {
    console.log('working');
}
runIt();

背景.js:

chrome.browserAction.onClicked.addListener(function(activeTab) {
    chrome.tabs.executeScript(null, {file: "content.js"});
});

页面加载后,它将记录“工作”,然后单击每个按钮。有没有办法在页面加载后立即停止运行?

提前感谢所有贡献。

4

1 回答 1

15

背景页面中的browserAction.onClicked代码完全符合您的要求。如果您想content.js在页面加载时停止作为内容脚本运行,只需不要将其作为内容脚本包含在您的清单中。

具体来说,在您的manifest.json文件中,您有一些看起来像这样的行:

"content_scripts": [
  {
    "matches": ["*://*/*"],
    "js": ["content.js"]
  }
],

只需删除这些行,脚本将在页面加载时停止运行,而您的点击侦听器代码将继续工作。

于 2013-04-05T14:16:37.070 回答