Как отправить динамические данные из contentcript.js в background.html - PullRequest
1 голос
/ 18 августа 2011

Я пытаюсь написать простое расширение Google Chrome. Но когда я пытаюсь отправить некоторые динамические данные из contentscript.js в background.html, я не получаю результата. Нет проблем с отправкой статических данных.

вот background.html :

<html>
<head>
      <script>
      chrome.extension.onRequest.addListener(function(request) {
                            alert(request.text);
                           });
      </script>
    </head>
</html>

и вот conentscript.js со статическими данными, которые работают отлично :

var req = {"text": "salam"};
chrome.extension.sendRequest(req);

и это contentscript.js , которое не работает :

var txt = getSelectedText();
var req = {"text": txt};
chrome.extension.sendRequest(req);

любая помощь приветствуется.

1 Ответ

1 голос
/ 18 августа 2011

Когда вы передаете объект через запрос, вы не передаете ссылку на него, как с обычными функциями.Этот объект фактически сериализуется в строку перед запросом, передается в виде строки, а затем собирается обратно из строки на фоновой странице (поэтому в запросе нельзя ничего передать, что нельзя сериализовать).Все ссылки теряются в процессе.

Возможно, вам придется переосмыслить свою архитектуру расширения, чтобы учесть это.

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