Расширения Google Chrome: передача выделенного пользователем текста веб-страницы в browser_action - PullRequest
1 голос
/ 05 марта 2010

Я работаю над расширением Chrome, где мне нужно передать выделенный текст в browser_action. Я нашел следующий код в группе Google, и на момент его написания он все еще действовал, но больше не работает ..

Кто-нибудь знает альтернативное решение?

background.html:

<html>
  <head>
    <script type="text/javascript">
      var selection_callbacks = [];

      function getSelection(callback) {
        selection_callbacks.push(callback);
        chrome.tabs.executeScript(null, { file: "contentscript.js" });
      };

      chrome.extension.onRequest.addListener(function (request) {
        var callback = selection_callbacks.shift();
        callback(request);
      });
    </script>
  </head>
  <body>
  </body>
</html>

popup.html:

<html>
  <head>
    <script type="text/javascript">
      function onSelection(text) {
        document.getElementById("output").innerHTML = text;
      }
      chrome.extension.getBackgroundPage().getSelection(onSelection);
    </script>
  </head>
  <body>
    <div id="output">
      This should be replaced with the selected text
    </div>
  </body>
</html>

contentscript.js:

chrome.extension.sendRequest(window.getSelection().toString());

1 Ответ

1 голос
/ 07 марта 2010

Вы можете использовать настоящий скрипт содержимого вместо внедрения JavaScript на страницу с помощью chrome.extension.executeScript.После этого можно было бы выполнить background.html, чтобы запросить у сценария содержимого выбор, используя chrome.tabs.sendRequest .

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