Динамически вставка скрипта с JavaScript
-
22-09-2019 - |
Вопрос
Короче говоря, я работаю над расширением Google Chrome. Расширения не имеют доступа к переменным в объеме страницы, на которой они работают по умолчанию (вам необходимо общаться через DOM).
То, что я пытаюсь сделать, это вставить сценарий на страницу; Это отлично работает, определяя тег сценария и атрибут SRC.
Проблема в том, что этот скрипт нуждается в переменной, которая будет инициализирована заранее. Чтобы инициализировать эту переменную, я пытаюсь построить элемент сценария с его кодом встроенного (вместо того, чтобы загружать из внешнего источника), но у меня возникают проблемы с тем, чтобы он работал.
Возможно ли это, и если да, то как я могу определить источник внутри сценария? Я попытался добавить текстовый узел, содержащий источник JS к элементу сценария, но безрезультатно.
Решение
Это отстой, но лучший способ сделать это, вероятно, передать ваши данные, введя их в DOM: http://code.google.com/chrome/extensions/content_scripts.html#host-page-communication
Вы также можете сделать это, делая что -то вроде:
var script = document.createElement('script');
script.type = 'text/javascript';
script.text = 'alert("It works!");';
document.head.appendChild(script);
Я не проверил это, но я предполагаю, что это будет работать из ваших сценариев контента.