передача массива в сообщении из скрипта контента на фоновую страницу в расширении Google Chrome - PullRequest
0 голосов
/ 21 июня 2011

Я пишу расширение Google Chrome.

Я хочу передать небольшой массив из скрипта контента на фоновую страницу в сообщении.Могу ли я просто сослаться на имя массива или мне нужно сначала создать из него объект JSON?

Вот код:

В СОДЕРЖАННОМ СКРИПТЕ

var req;
var detailWin;

//drag off the f_foto class
var searchResult = document.getElementsByClassName("f_foto");
alert("Found Class f_foto "+searchResult.length+" times.");

//collect profile links
for (var i = 0; i<searchResult.length; ++i) 
{
    var profileLink=searchResult[i].getElementsByTagName("a");
    profileLinks[i]=profileLink[0].href;
    //  alert(i+1+" of "+searchResult.length+" "+profileLinks[i]+" length of "+profileLinks[i].length);
}
for (var i = 0; i<searchResult.length; ++i) 
{
    //tell bkgd page to open link
    chrome.extension.sendRequest({cmd: "openProfile", url: profileLinks[i]});

    //BETTER TO SEND WHOLE ARRAY.  
    //LIKE THIS? chrome.extension.sendRequest({cmd: "openProfile", urlList: profileLinks});
    //OR SHOULD I MAKE A JSON OBJECT OUT OF IT?
}

//IN THE BACKGROUND PAGE

var detailTabId = null;
var profileLinks = new Array();
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    if(request.cmd == "openProfile") {
//IF RECEIVING AN ARRAY, PROCESS IT LIKE THIS?
//  profileLinks= request.urlList;
//  console.log=("Received "+ urlList.length + " links.");
        chrome.tabs.create({url: request.url}, function(tab){
        //save tab id so we can close this tab later
        detailTabId = tab.id;
        //profile tab is created, inject profile script
        chrome.tabs.executeScript(tab.id, {file: "profile.js"});
        });
    }
});

1 Ответ

1 голос
/ 21 июня 2011

Массив - это конструкция объекта JSON, поэтому нет необходимости делать что-либо, кроме того, что вы делаете сейчас.

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