2011-06-21 42 views
0

我正在编写Google Chrome浏览器扩展。将内容脚本中的消息中的数组传递给Google Chrome扩展中的背景页

我想从内容脚本传递一个小阵列到消息中的背景页面。我可以简单地引用数组名称还是需要我先从它构造一个JSON对象?

下面是代码:

在内容SCRIPT

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

数组是一个JSON对象的结构,所以没有必要做的比你现在正在做什么其他的事情。

相关问题