Разрешение использования jQuery в скрипте содержимого расширения Chrome - PullRequest
0 голосов
/ 19 сентября 2019

Я написал расширение для Chrome, которое изменяет внешний вид внешнего сайта (недоступен для меня на стороне сервера).Файл content.js написан на jQuery, и он работает нормально, пока я храню копию API jQuery в корне папки расширения и объявляю имя файла в "content_scripts": "matches": в файле расширения manifest.json.Но не должно быть необходимости использовать локальный файл, не так ли?Я не могу вместо этого связаться с https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js этом посте предлагается добавить ссылку под "content_scripts": "matches":, но это не сработает.

Я думал, что это будет действительно основная проблема, и ответ будет очевидными сильно проголосовал, но я не могу найти ничего подобного здесь.Извините, если это потому, что я толстый.

1 Ответ

1 голос
/ 20 сентября 2019

TL; DR: Загрузите библиотеку, распространите ее в своем расширении и используйте ее, как и любой другой скрипт в вашем расширении.

Причины:

Загрузкавнешний сценарий - плохая идея, как правило, даже если это хорошо известная библиотека, такая как jQuery.

  1. Расширения выполняются в привилегированном контексте.Сценарии содержимого, конечно, строго ограничены, но, тем не менее, они имеют доступ к своим фоновым сценариям с помощью обмена сообщениями, и может быть довольно много повреждений, если удаленный код был взломан или перенаправлен на вредоносный сервер или прокси.

  2. Удаленный код будет скоро запрещен в расширениях Manifest V3, вероятно, через год или около того, и в конечном итоге он, вероятно, будет применяться и для расширений Manifest V2.

  3. Удаленный код не может быть проверен Chrome, когда он периодически проверяет локально установленные расширения, чтобы убедиться, что их файлы не были изменены какими-либо вредоносными программами в ОС или просто из-за сбоя диска, который привел к потере данных/files.

  4. Не будет работать в автономном режиме, если загруженный код был удален из кэша браузера.

Примечания:

  • Если вас интересует размер расширения и всего несколько (десятки) вызовов jQuery, рассмотрите возможность вообще не использовать jQuery.
  • Если вас интересуют автоматические обновления / исправления, применяемые к jQuery, используйте более ответственный подход: включайте обновленную библиотеку только после ее тестирования и убедитесь, что все работает как положено.
...