Загрузить 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'"
Другие вопросы по тегам