2013-02-09 71 views
5

popup.jsでは、現在のタブの特定のdiv ID内のすべてのテキストを表示し、アラートで表示するために次のコードを使用しています。私はどのようにdivのテキストをpopup.js内の変数に保存することが可能だろうと思っていますか?chrome.tabs.executeScriptからの戻り値

chrome.tabs.executeScript(null,code:"alert(document.getElementById(\"DIVid\").innerText.split(' '))"}); 

以上が正常に動作しますが、私はこれをしようとすると:

var getText = chrome.tabs.executeScript(null,code:"document.getElementById(\"DIVid\").innerText.split(' ')"}); 

または

var getText = chrome.tabs.executeScript(null,code:"document.getElementById(\"DIVid\").innerText.split(' ')"},function(response){return response}); 

何も保存されません。私は明らかにこれについて間違った方法をとっています。私は間違って何をしていますか?

答えて

7

あなたが原因chrome.api

の非同期性質上、コールバック内で更新変数を持って

var getText = Array(); 
chrome.tabs.executeScript(tabs[tab].id, { 
    "code": "document.getElementById(\"_Your_ID_Here_\").innerText.split(' ')" 
}, function (result) { 
    for (i = 0; i < result[0].length; i++) 
    getText [i] = result[0][i]; 
    console.log(getText); 
}); 

、次のコードを使用します