我正在尝试将jQuery加载到我的Chrome扩展程序中,并使它等于一个对象,但我想知道该如何操作?基本上,我想要像这样的东西...
jQuery = loadLibraries("jquery-1.4.2.min.js");
我该如何做到这一点?
编辑:我正在注入到内容脚本中。
我正在尝试将jQuery加载到我的Chrome扩展程序中,并使它等于一个对象,但我想知道该如何操作?基本上,我想要像这样的东西...
jQuery = loadLibraries("jquery-1.4.2.min.js");
我该如何做到这一点?
编辑:我正在注入到内容脚本中。
{
"name": "My extension",
...
"content_scripts": [
{
"matches": ["http://www.google.com/*"],
"css": ["mystyles.css"],
"js": ["jquery.js", "myscript.js"]
}
],
...
}
内容脚本是沙盒化的,因此您不必担心与父页面上的jQuery发生冲突。
_$ = function(selector,context){ return new jQuery.fn.init(selector,context||document); };
并且将监听器附加到 _$ 对象上呢?另外,您在那里提供的“matches”参数是做什么用的? - Skizit<script type="text/javascript" src="jquery.js"></script>
。 - Elia Weiss你可以通过在background_page HTML中的脚本来实现这一点:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, { file: "jquery.min.js" }, function() {
chrome.tabs.executeScript(null, { file: "content_script.js" });
});
});
然后在 content_script.js 中做任何你想做的事情:
$('#header').hide();
请注意,即使您注入的页面已经加载了jQuery,您仍然会访问通过DOM(document)访问页面的jQuery对象的自己的实例。
"content_scripts": [ {
"matches": ["http://*/*"],
"js": ["jquery.min.js"]
} ]
请在此同一线程中查看jdc的答案。
编辑:该答案已经相当老旧,不再反映当前的惯例。感谢您的提醒。
"content_security_policy": "[策略字符串放在这里]"
参考:https://developer.chrome.com/extensions/contentSecurityPolicy在我看来,最好的方法是使用jdc发布的方法。 - richb01除了以上的答案,如果您希望通过CDN添加jQuery,您需要在manifest.json文件中添加以下内容
"content_security_policy": "script-src 'self' https://ajax.googleapis.com; object-src 'self'"