2011-06-21 22 views
0

私はGoogle Chrome拡張機能を作成しています。コンテンツスクリプトからGoogle Chromeの拡張機能の背景ページにメッセージの配列を渡します。

メッセージ内のコンテンツスクリプトからバックグラウンドページに小さな配列を渡したいと考えています。単に配列名を参照することはできますか、それとも最初からJSONオブジェクトを作成する必要がありますか?ここで

はコードです:CONTENTスクリプトで

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オブジェクトの構造体です。

関連する問題