В background.html, как я могу получить доступ к текущей веб-странице, чтобы получить дом - PullRequest
2 голосов
/ 06 мая 2010

В background.html я хочу получить текущую веб-страницу dom. такой как "getElementById ()

Ответы [ 2 ]

6 голосов
/ 07 мая 2010

Для этого вам нужно будет использовать Передача сообщений . Передача сообщений необходима для того, чтобы вы могли общаться с DOM, и единственный способ связи с DOM - через Content-Scripts. Я покажу вам два способа, которыми вы можете сделать это:

Метод 1

Прослушивание каждой просматриваемой страницы запроса на расширение

background.html

<html>
<script>
chrome.tabs.getSelected(null, function(tab) {
  chrome.tabs.sendRequest(tab.id, {method: "getHTML"}, function(response) {
    console.log(response.data);
  });
});
</script>
</html>

content_script.js

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    if (request.method == "getHTML")
      sendResponse({data: document.getElementById('header').innerHTML});
    else
      sendResponse({}); // snub them.
});

Метод 2

Выполнять скрипт содержимого можно только тогда, когда вам нужно:

background.html

<html>
<script>
chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(tab.id, {file: 'execute.js'});
});

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
  console.log('Data Recieved: ' + request.data);
});
</script>
</html>

execute.js

chrome.extension.sendRequest({data: document.getElementById('header').innerHTML});
0 голосов
/ 06 мая 2010

Нажмите CTRL + SHIFT + I для пользовательского интерфейса разработчика или CTRL + U для источника

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