Как использовать jQuery из CDN jquery.com в расширение Chrome

Мне бы хотелось, чтобы jQuery был доступен как в скриптах контента, так и в консоли (т. е. с веб-страницы - я верю, но не уверен, поэтому вы используетеweb_accessible_resources).

примечание: я согласен сЗиг Мандель ниже, кто заявляет, что вы не должны использовать CDN для загрузки jquery, потому что это только экономит небольшое количество места и оставляет открытой возможность того, что CDN может быть недоступен. На данный момент, я просто хочу знать,Зачем это нет работа.

Почему нетт эта работа:

manifest.json
  "content_scripts": [
    {
  ...
      "js": ["foo.js", "https://code.jquery.com/jquery-1.10.1.min.js", "https://code.jquery.com/jquery-1.10.1.min.map"],
      "run_at": "document_idle",
      "all_frames": true
    }
  ],
  "content_security_policy": "script-src 'self' https://code.jquery.com; object-src 'self'",
  "web_accessible_resources": [ "https://code.jquery.com/jquery-1.10.1.min.js", "https://code.jquery.com/jquery-1.10.1.min.map"],

ошибка, которую я получаю при загрузке моего расширения:

--------------------------- Extension error
--------------------------- Could not load extension from 'C:\Users\[me]\Documents\GitHub\foo'. Could not load
javascript '' for content script.
--------------------------- OK   
---------------------------

и когда мне нужен jQuery (или некоторая настраиваемая библиотека отладки и т. д.) вweb_accessible_resources против когда?content_scripts

Использование консоли ответилиЭкспертная система

Вы оба должны включить файл javascript, такой как jQuery, вweb_accessible_resources а затем ввести его. Включая jQuery вcontent_scripts только для использования другимконтентные скрипты в расширении. Пример того, как внедрить код (локальный или нет):

контентный скрипт
function inject(script) {
    if (script.match(/^http\:\/\//)){
        var ssrc = document.createElement("script");
        ssrc.setAttribute("src", script);
        ssrc.addEventListener('load', function() {
            var ssrc = document.createElement("script");
            ssrc.textContent = "(" + callback.toString() + ")();";
            document.body.appendChild(script);
        }, false);
        document.body.appendChild(script);
    }
    else {
        var s = document.createElement('script');
        s.src = chrome.extension.getURL(script);
        s.onload = function () {
            this.parentNode.removeChild(this);
        };
        (document.head || document.documentElement).appendChild(s);
    }
}

[path_to_javascript, ...].forEach(inject) // put the javascript filename you'd like to inject in this array.

Ответы на вопрос(1)

Ваш ответ на вопрос