sendRequest удаляет функцию прохождения - PullRequest
0 голосов
/ 17 марта 2012

Chrome удаляет функцию, которую я пытаюсь передать через sendRequest.

function sendQuery() {
  var currentQuery = document.getElementById("queries").value;

  var request = {
    option: "random value",
    command: function() {
      alert("fire!");
    }
  };       

  chrome.tabs.getSelected(null, function(tab) {
    chrome.tabs.sendRequest(tab.id, request)
  });
}

Как вы можете видеть, request содержит функцию command, но когда я 'сбрасываю' запрос, который был получен ContentScript, все, что я получаю, это:

request
  Object
    option: "random value"
    __proto__: Object

Мне нужно также передать command, а не только option. Заранее благодарим за помощь в этом.

Редактировать: отредактировано в соответствии с предложением Пойнти, но проблема остается.

1 Ответ

1 голос
/ 17 марта 2012

Второй параметр chrome.tabs.sendRequest - это JSON-сериализация для транспортировки.

Единственный способ передать функцию - это третий параметр.Эта функция принимается в качестве третьего параметра в прослушивателе событий chrome.extension.onRequest:

function sendQuery() {
    var currentQuery = document.getElementById("queries").value;

    var request = { option: "random value" };
    var command = function() {  alert("fire!");  };       

    chrome.tabs.getSelected(null, function(tab) {
       chrome.tabs.sendRequest(tab.id, request, commans);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...