Как получить данные с веб-страницы в Chrome и вывести их во всплывающее окно с расширением Chrome? - PullRequest
3 голосов
/ 26 мая 2010

Для расширения Google Chrome ни один из написанных мной Javascript для манипулирования DOM расширения popup.html, похоже, не влияет на DOM всплывающего окна. Я могу отлично управлять DOM текущей веб-страницы в браузере, используя content_script.js, и мне интересно получать данные с веб-страницы и выводить их во всплывающее окно расширения, например так (ниже: popup.html):

<div id="extensionpopupcontent">Links</div>
<a onclick="click()">Some Link</a>

<script type="text/javascript">
 function click() {
  chrome.tabs.executeScript(null, {file: "content_script.js"});
  document.getElementById("extensionpopupcontent").innerHTML = variableDefinedInContentScript;
  window.close();
 }
</script>

Я пытался использовать chrome.extension.sendRequest из документации на http://code.google.com/chrome/extensions/messaging.html,, но я не уверен, как правильно использовать его в моем случае, особенно приветствие и ответ.

contentscript.js
================
chrome.extension.sendRequest({greeting: "hello"}, function(response) {
  console.log(response.farewell);
});

1 Ответ

2 голосов
/ 26 мая 2010

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

То, что вы делаете во всплывающем окне, должно работать (дополнительно):

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

Что будет делать приведенный выше фрагмент, он будет прослушивать события из скрипта контента (sender.tab == true, если он поступает из скрипта контента).

Если вы прочитаете всю страницу с сообщениями, это объясняет это хорошими примерами: http://code.google.com/chrome/extensions/messaging.html

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