Передача сообщений расширения Chrome - включен код - PullRequest
0 голосов
/ 02 мая 2011

У меня есть файл содержимого file.js, который создает переменную "found".Я хочу отправить значения переменной "найдено" в текстовое поле в popup.html

В файле file.js (я знаю, что переменная найдена работает, проверено с помощью предупреждения).

chrome.extension.sendRequest({foundlinks: found}, function(response) {
 console.log(response);
});

В Popup.html:

function pulllinks(){

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {

    document.getElementById("box").value = request.foundlinks;

  sendResponse({});
});

И в форме в popup.html:

<input type = "button" onclick="pulllinks();" name = "box" id="box" value = "Grab Links From Page"  /> 

Однако ничего не происходит.Есть идеи?

Спасибо!

Ответы [ 2 ]

1 голос
/ 02 мая 2011

Вам нужно отправлять запросы в обратном направлении - от всплывающего окна до скрипта содержимого:

popup.html:

function pulllinks(){
    chrome.tabs.getSelected(null, function(tab) {
        chrome.tabs.sendRequest(tab.id, {cmd: "findLinks"}, function(response) {
            document.getElementById("box").value = response.foundlinks;
        });
    });

}

файл.js:

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    if(request.cmd == "findLinks") {
        //calculate "found" value and send it back
        sendResponse({foundlinks: found});

    }
});
1 голос
/ 02 мая 2011

Прежде всего, ваш слушатель onRequest должен существовать с самого начала, поэтому переместите его за пределы функции pulllinks.Во-вторых, как вы убедитесь, что ваш sendRequest запускается, когда всплывающее окно открыто?

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