Скрипт Google Chrome не работает должным образом - PullRequest
1 голос
/ 03 апреля 2011

Я написал небольшой скрипт для Google Chrome. Он работает довольно хорошо, пока я не вызову функцию initTimer() В моем скрипте такой функции нет, но она есть в скрипте на странице, на которой выполняется мой пользовательский скрипт, но в любом случае есть ошибка initTimer() is not defined. Я пытался написать window.initTimer(), но там написано Object [object DOMWindow] has no method 'initTimer'. Так как я могу заставить это работать?
Заранее спасибо

1 Ответ

2 голосов
/ 03 апреля 2011

Поскольку пользовательские скрипты, как правило, помещаются в «песочницу» из остальной части среды браузера, пользовательские скрипты не могут взаимодействовать со скриптами, выполняющимися на самой странице, а также скрипты, работающие на странице, не могут взаимодействовать с скриптами пользователей по соображениям безопасности.

Для этого вам нужно будет выполнить внедрение скрипта, создав элемент script на самой странице, содержащий код, который вы хотите выполнить.

var s = document.createElement('script');
s.innerHTML = 'initTimer();';
document.body.appendChild(s);

Проблема с этим, который может или не может нарушить ваш скрипт, заключается в том, что введенный код не сможет напрямую взаимодействовать с кодом в песочнице, поэтому вам придется либо ввести все вашего кода, или используйте альтернативный метод для связи, если вам нужно.

...