Загрузить JQuery в расширение Chrome?
Я пытаюсь загрузить JQuery в свое расширение Chrome и сделать его равным объекту, но мне интересно, как мне это сделать? в основном я хотел бы что-то вроде...
jQuery = loadLibraries("jquery-1.4.2.min.js");
Как бы я это сделал?
редактировать: я делаю инъекцию в контентный скрипт.
4 ответа
Вы можете просто поместить jquery.js в папку расширений и включить его в манифест:
{
"name": "My extension",
...
"content_scripts": [
{
"matches": ["http://www.google.com/*"],
"css": ["mystyles.css"],
"js": ["jquery.js", "myscript.js"]
}
],
...
}
Вам не нужно беспокоиться о конфликтах с jQuery на родительской странице, так как скрипты содержимого находятся в "песочнице".
Вы можете сделать это из скрипта в вашем 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, вы все равно запускаете собственный экземпляр объекта jQuery, который обращается к странице через DOM. (документ).
"content_scripts": [ {
"matches": ["http://*/*"],
"js": ["jquery.min.js"]
} ]
Проверьте ответ по JDC здесь в этой же теме.
Изменить: этот ответ был довольно старым и больше не отражал текущую практику. Спасибо за внимание.
Добавляя к приведенным выше ответам, если вы хотите добавить jQuery через CDN, вам нужно будет добавить следующее в файл manifest.json
"content_security_policy": "script-src 'self' https://ajax.googleapis.com; object-src 'self'"