#javascript #html #firefox-addon-webextensions
#javascript #HTML #firefox-дополнение-webextensions
Вопрос:
Я пытался перенести простую программу, которую я создал на jQuery / HTML, в Firefox WebExtension для упрощения развертывания. Ошибка, которую я получаю, заключается в:
Content Security Policy: The page’s settings blocked the loading of a resource at https://code.jquery.com/jquery-1.12.4.js (“script-src moz-extension://ef8f1295-1912-4912-ab2e-121053b6781a”).
Я уверен, что я просто неправильно использую файл manifest.json, но, хоть убейте, я не знаю, где:
{
"description": "Makes tasks from different underwriters uniform",
"manifest_version": 2,
"name": "Task Creator",
"version": ".5",
"permissions": [
"http://*/*", "tabs", "https://*/*"
],
"icons": {
"48": "icons/page-48.png"
},
"web_accessible_resources": [
"style/popUpStyle.css",
"script/popUpTask.js",
"script/logicTaskFiller.js",
"js/autosize.js",
"style/https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css",
"js/https://code.jquery.com/jquery-1.12.4.js",
"js/https://code.jquery.com/ui/1.12.1/jquery-ui.js"
],
"background": {
"scripts": ["background.js"]
},
"browser_action": {
"default_icon": "icons/page-32.png"
}
}
Комментарии:
1.
js/https://code.jquery.com/jquery-1.12.4.js
указан неверный путь к файлу. Используйтеjs/jquery-1.12.4.js
и убедитесь, что файл есть.2. Могу ли я не загружать jquery с внешнего веб-сайта?
3. Вы можете сделать это вручную, но не через manifest.json
4. Приятно знать, спасибо…. Я действительно не могу отметить вас в качестве ответа, поскольку вы в комментариях, да
5. «Могу ли я не загружать jquery с внешнего веб-сайта?» Вы можете. Должны ли вы? В чем улучшение?
Ответ №1:
По умолчанию расширения не могут загружать скрипты или другие ресурсы объекта из Интернета. Все содержимое CSS и JavaScript, используемое вашим расширением, должно быть частью пакета расширения.
(Эта документация из Chrome, но точно такие же политики применяются к Firefox WebExtensions.)
Можно несколько ослабить эти ограничения, но обычно этого следует избегать — загрузка ресурсов с удаленного сервера приведет к сбою в работе вашего расширения, если у пользователя нет доступа в Интернет или если он находится за ограничительным брандмауэром. Кроме того, addons.mozilla.org не будут приниматься дополнения, которые выполняют Javascript, размещенный удаленно.
Комментарии:
1. Как указано, это неправильно, поскольку вы можете ослабить политику.
2. @Xan, Хотя вы можете технически ослабить политику, если вы собираетесь размещать WebExtension на AMO («обычный» метод распространения расширений Firefox), любой используемый вами JavaScript должен быть включен в пакет расширения. Любые такие распространенные библиотеки должны точно соответствовать копиям, доступным для загрузки. То, что они совпадают, будет проверено в процессе проверки. Если вы загружаете JavaScript с внешнего ресурса, вы вряд ли пройдете проверку на хостинг на AMO.
3. Я не согласен. Но исходное утверждение по-прежнему было неверным, и теперь исправлено.
4. @Makyen Это тоже хороший момент! Я добавил примечание об этом.