Как внедрить код в веб-страницу facebook / google, используя расширения? - PullRequest
4 голосов
/ 20 июня 2011

Я новичок в разработке расширений.Я пытаюсь создать расширение, где я могу ввести код в веб-страницу.Я пытался сделать это с помощью скриптов содержания Google Chrome.Но я не смог сделать это на facebook.com или google.com.Кажется, работает на yahoo.com.Для этого есть причина?Как я могу обойти это?

Ответы [ 2 ]

5 голосов
/ 20 июня 2011

Я сделал это в одном из моих расширений, Экспортер друзей из Facebook , не стесняйтесь взглянуть.Он использует Facebook для получения контактной информации ваших друзей (включая электронную почту) и экспортирует их в Gmail в качестве нового контакта.Для этого требуются разрешения от Google и Facebook, которые похожи на ваши.

Поскольку вам потребуется ввести код в Facebook или Google, вы должны использовать Сценарии содержимого .Сценарии содержимого позволяют запускать код JavaScript в контексте веб-страницы.Вы можете использовать стандартный DOM для извлечения / чтения материалов с этой веб-страницы и внесения в них изменений.

В вашем manifest.json вам необходимо определить его следующим образом:

{
  "name": "My extension",
  ...
  "content_scripts": [
    {
      "matches": ["http://*.google.com/*", "http://*.facebook.com/*"],
      "css": ["injected_styles.css"],
      "js": ["injected_script.js"],
      "all_frames": true
    }
  ],
  ...
}

ДляБолее подробную информацию о шаблонах матчей вы можете прочитать об этом в документации Match Patterns .Помните, что совпадение верхнего сценария содержимого позволяет вводить только в домены .com.Просто примите это во внимание, если вам нужно больше совпадающих доменов, вам нужно вводить их там один за другим.(Я знаю, что это проблематично, но это из соображений безопасности)

Помните, что для сложных сайтов, таких как Google Mail (gmail), он использует iframes, обычно для представления своей DOM.Вот почему я поместил «all_frames: true», потому что я хочу, чтобы этот скрипт контента запускался во всех фреймах страниц, а не только в верхнем фрейме.

Надеюсь, это поможет!

4 голосов
/ 20 июня 2011

Вы можете внедрить код в любые веб-сайты, используя Content Scripts . Убедитесь, что вы включили "facebook.com" или "google.com" в тег совпадений в файле manifest.json

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