Почему эта функция возвращает ответ как ноль - PullRequest
0 голосов
/ 24 февраля 2012

Я написал функцию для события click, как показано ниже

$('#ClickMe').live('click', function () {
    chrome.extension.sendRequest({ method: "getT" }, function (response) {
        alert(response.data); // Displaying undefined..
    });
});

на фоновой странице ..

function wish(){      
   return "Hey...";
}
chrome.extension.onRequest.addListener(function(request, sender, sendResponse){
  if (request.method == "getT"){
    sendResponse({data: wish()});
  }
  else
    sendResponse({});
});

Я не могу получить ответ в Content Script. Пожалуйста, помогите мне в этом.

1 Ответ

1 голос
/ 25 февраля 2012

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

function wish(){      
   return "Hey...";
}
chrome.extension.onRequest.addListener(function(request, sender, sendResponse){
  if (request.method == "getT"){
    var data = wish();
    sendResponse({data: data});
  }
  else
    sendResponse({});
});

Приведенный выше фрагмент должен работать.

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