Как я могу получить расширение Chrome, чтобы повлиять на саму веб-страницу?(не всплывающее окно) - PullRequest
1 голос
/ 24 июля 2011

Я читал руководство разработчика , но не смог понять, как разместить свои собственные коды на веб-страницах

Я знаю, что это возможно, потому что AVG использует его (в своем сканере ссылок), и расширение FastestChrome тоже использует его (выделите что-то, и появится ссылка на поиск).

У меня есть фоновая страница, но я не могу заставить ее работать на веб-страницах, на которые я перехожу (права доступа правильные, так как я могу настроить CSS)

Я, наверное, упускаю что-то действительно простое: /

Ответы [ 2 ]

7 голосов
/ 24 июля 2011

Это не интуитивно представлено в документации, но ваша фоновая страница не может получить доступ к текущей веб-странице, поскольку они находятся в разных контекстах. Другими словами, фоновая страница - это отдельная отдельная страница, поэтому она не имеет доступа к DOM любой другой страницы.

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

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

Просто запомни ...

Фоновая страница : используется для общей логики вашего расширения, а не для какой-либо конкретной страницы.

Сценарии содержимого : загружаются на каждую страницу, которую видит пользователь, и могут манипулировать этой конкретной страницей.

1 голос
/ 24 июля 2011

Те, вероятно, используют Сценарии содержимого для внедрения Javascript в веб-страницы. Эти сценарии выполняются в контексте веб-страниц и могут обращаться к DOM.
Вы можете либо определить сценарий, который будет всегда запускаться на веб-странице, объявив файл сценария в манифесте расширения, либо использовать фоновую страницу для добавления сценария при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...