Расширение Google Chrome - Доступ к DOM - PullRequest
10 голосов
/ 14 января 2010

Я искал в Интернете, чтобы узнать, как получить доступ к текущим DOM вкладок, чтобы извлечь информацию из страницы из background.html. Пока что мне не повезло или, по крайней мере, я ничего не смог заставить работать должным образом.

Чтобы сформулировать проблему просто. Я хотел бы получить src iFrame на странице. Есть предложения?

1 Ответ

7 голосов
/ 14 января 2010

С одной стороны, вы рассматриваете это как единовременный запрос к контент-скрипту, который извлекает домен, к которому вы хотите получить доступ. http://code.google.com/chrome/extensions/messaging.html#simple

По сути, ваш контент-скрипт настраивает слушателя:

chrome.extension.onRequest.addListener(
  function(request, sender, sendResponse) {
    if (request.greeting == "hello")
      sendResponse({farewell: "goodbye"});
    else
      sendResponse({}); // snub them.
  });

А ваша фоновая страница отправляет один живой запрос:

chrome.tabs.getSelected(null, function(tab) {
  chrome.tabs.sendRequest(tab.id, {greeting: "hello"}, function(response) {
    console.log(response.farewell);
  });
});

Когда вы отправляете свой ответ, вы отправляете его в виде данных JSON, вы можете получать все, что захотите (например, html, dom, text и т. Д.).

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

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