Вопрос

Короче говоря, я работаю над расширением 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);

Я не проверил это, но я предполагаю, что это будет работать из ваших сценариев контента.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top