#javascript #node.js #google-chrome #google-chrome-extension #request
#javascript #node.js #google-chrome #google-chrome-extension #запрос
Вопрос:
Я хочу, чтобы мое расширение Chrome просматривало HTML-элементы страницы, находило идентификатор пользователя в Facebook и связывалось с AWS. Я настроил свой проект до сих пор, используя yo
генератор расширений Chrome. Оттуда я написал небольшой контент-скрипт, который начинает возиться с DOM другой страницы, превращая ругательства в приятные слова.
У меня возникли проблемы с импортом запроса в мой проект. Как я могу импортировать его в свой контент-скрипт?
Я попробовал это: var request = require('request');
после выполнения npm install --save request
, но я получаю Uncaught ReferenceError: require is not defined
. Что мне делать?
Ответ №1:
Я думаю, вам было бы лучше просто использовать встроенные API, в этом случае должен работать обычный XHR. https://developer.chrome.com/extensions/xhr
Я не знаком с генератором yo, на который вы ссылались, но если он не использует jspm / webpack / browserify или что-то подобное, я думаю, вам не повезло с установкой пакетов npm. Вы могли бы попробовать настроить один из них вручную, но у Chrome есть некоторые ограничения, которых нет в обычном Интернете, поэтому многие пакеты, вероятно, в конечном итоге сломаются.
Комментарии:
1. Спасибо, я попробую XHR
2. Могу ли я отправить POST-запрос с заголовками и телом json?
3. В сценарии содержимого вы можете использовать то же самое, что и на обычном веб-сайте. Так что да, вы можете, но я думаю, вам нужно знать о CORS. Подумайте о сценарии, как файлы скриптов включен прямо на сайте с <script> tag.
4. @HenrikKarlsson Это было бы очень плохим заблуждением. Скрипты содержимого обходят требования CORS в соответствии с разрешениями хоста , как и остальные расширения, и в целом ведут себя совсем не так, как собственные скрипты страницы с точки зрения среды выполнения и CSP .