2010-01-14 1 views
10

Я искал в Интернете, чтобы узнать, как получить доступ к текущим вкладкам DOM для извлечения информации из страницы из background.html. До сих пор мне не повезло, или, по крайней мере, я не смог нормально работать.Расширение Google Chrome - доступ к DOM

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

ответ

7

В одном случае, вы рассматриваете это как единый одноразовый запрос к контенту, который будет получать дом, к которому вы хотите получить доступ. 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, текст и т. Д.).

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

+8

Обратите внимание, что этот ответ устарел. 'SendRequest' и 'getSelected' устарели. Сценарий не работает. – sbichenko

+4

aaaand следует заменить sendMessage/onMessage в Chrome 20 –

+1

aaaaaand пример будет отличным. :-) – Ajax

 Смежные вопросы

  • Нет связанных вопросов^_^