Как я могу использовать библиотеку запросов узла с веб-страницы через расширение Chrome?

#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 .