2012-05-21 11 views
0

Я начинаю разрабатывать расширение Chrome. У меня проблема:chrome extension programminging

Как я могу выполнить скрипт для текущей открытой страницы? Я хочу сделать это, используя background.html. Я уже пытался запустить

document.addEventListener('DOMContentLoaded', exec_fun); 

или

window.addEventListener('DOMContentLoaded', exec_fun); 

, а также зарегистрированный в backgroung.htmlmanifest.json выполнить функцию exec_fun(), но он не работает. Что я делаю не так?

+0

Не могли бы вы отправить свой манифест и, возможно, еще какой-нибудь код? Проблема может быть там. Кроме того, попробуйте проверить, что вы указали необходимые вам разрешения (если они вам нужны). –

ответ

1

если вы хотите скрипт для запуска на каждой странице, вы должны написать сценарий содержания: http://code.google.com/chrome/extensions/content_scripts.html

Содержание скрипты запуска внутри страницы, так что вы можете получить доступ к его DOM и использовать свои события.

С другой стороны, background.html запускается только один раз при запуске расширения (обычно при открытии браузера) и не зависит от любой вкладки или страницы. Его расширение «операционная база». Это не то место, где вы хотите поместить ваш сценарий, за исключением того, что вы используете слушателя, чтобы поймать каждое изменение страницы с OnUpdated, что пожары каждый раз, когда изменения URL-вкладки:

http://code.google.com/chrome/extensions/tabs.html#event-onUpdated

«, а также зарегистрированный фон. html в manifest.json для выполнения функции exec_fun() «

Как вы пытаетесь это сделать? Я думаю, что это не так.

+0

Нет ... Я только что сообщил, что зарегистрировал background.html background.html в поле «background»: поле файла manifest.json, чтобы сообщить, что ошибка не из-за того, что оба слушателя i m добавляют внутри скрипта atg в background.html. Кстати, я понимаю, что я должен использовать скрипт контента. Спасибо за ответ! –

+0

Теперь проблема в том, что я не могу использовать chrome. * Api из-за скрипта, определенного как content_script ??? –

+0

Да, это вопрос безопасности. Скрипт контента может обращаться к DOM, но не может использовать (большинство) хром API; фоновый скрипт может использовать API-интерфейс Chrome, но не может получить доступ к DOM. Сценарий вашего контента должен связываться со своим фоновым скриптом: http://code.google.com/chrome/extensions/content_scripts.html#host-page-communication –