2015-04-09 2 views
0

Можно ли добавить размещенные js и css в плагин chrome content_script.Включая размещенные js и css в chrome extension

"content_scripts": [ 
    { 
     "matches": ["*://*/*"], 
     "css": ["bootstrap.min.css", "mystyles.css"], 
     "js": ["jquery-1.7.2.min.js", "myscript.js"], 
     "all_frames" : true 
    } 
    ] 

здесь JS и CSS должны находиться в том же пакете manifest.json

Я хочу добавить, размещенных JS как

"content_scripts": [ 
    { 
     "matches": ["*://*/*"], 
     "css": ["bootstrap.min.css", "mystyles.css"], 
     "js": ["https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js", "https://www.example.com/js/myscript.js"], 
     "all_frames" : true 
    } 
    ] 

ответ

3

Нет, не могу этого сделать.

Прежде всего, never использовать CDN для доставки библиотек, таких как jQuery, на ваше расширение; в буквальном смысле нет, что вы спасаете? Вы получаете задержку в сети, где их не должно быть.

Далее, скрипты приложений. Я могу понять, что нужно обновлять их быстрее, чем обновлять расширение, тогда это имеет смысл. Однако вы не можете включить в манифест нелокальный файл.

Вы можете, однако, сделать следующее:

  1. Вводят небольшой "загрузился" сценарий, который является локальным.

  2. Messagebackground page из сценария начальной загрузки с запросом на ввод остальных.

  3. Фоновая страница выбирает сценарий with XHR (помните, что вам понадобятся разрешения хоста).

    Я рекомендую использовать какое-то кеширование, например, только попробуйте получить новую версию один раз каждые N минут/часов/дней и saving a copy locally in chrome.storage. В противном случае, вы получите ужасную задержку.

  4. фона страницы впрыскивает сценарий с помощью

    chrome.tabs.executeScript(tabId, {code: "..."}) 
    

    programmatic injection форму.

Обратите внимание, что все это является относительно сложным и весьма обескуражен, если не использовать HTTPS для доставки сценариев (в противном случае вы широко открыты для атак MITM). Если у вас нет особых требований к обновлению логики приложения быстрее, чем вы можете обновить расширение, не делайте этого.

+1

Согласен. Есть некоторые исключения, например, google обескураживает использование локальной analytics.js и вместо этого предлагает ввести ее. Я все еще не хочу :) –

Смежные вопросы