大家好我想加载脚本,无论用户是否点击了我的扩展图标 这是我的扩展,它工作得很好,但我想让它工作,而不是让用户点击图标来加载脚本..
这是代码。
{
"name": "Injecta",
"version": "0.0.1",
"manifest_version": 2,
"description": "Injecting stuff",
"background":
{
"scripts": ["jquery.js","background.js"]
},
"browser_action": {
"default_title": "Inject!"
},
"permissions": [
"https://*/*",
"http://*/*",
"tabs"
]
}
这是我的background.js
chrome.browserAction.onClicked.addListener(function (tab) {
chrome.tabs.executeScript({
file: 'jquery.js'
});
chrome.tabs.executeScript({
file: 'inject.js'
});
});
我只想让扩展程序加载页面加载的所有脚本。目前用户必须单击图标才能加载脚本..
答案 0 :(得分:1)
executeScript
的作用基本上是动态创建Content Script。这称为Programmatic Injection。
使用内容脚本的另一种方法是specifying them in the manifest。这完全符合您的要求:内容脚本在页面加载时自动执行。
"content_scripts" : [
{
"js": ["jquery.js", "inject.js"],
"matches": ["*://*/*"]
}
],
将matches
参数调整为仅包含match patterns您要运行的网页。
如果您需要在注射时进行微调,请务必查看run_at
参数的文档。
答案 1 :(得分:-2)
if (typeof jQuery === 'undefined') {}