14

popup.jsでは、次のコードを使用して、現在のタブの特定のdiv id内のすべてのテキストを表示し、アラートで表示しています。divテキストをpopup.js内の変数に保存するにはどうすればよいのでしょうか。

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});

何も保存されません。私は明らかにこれを間違った方法で行っています。私は何が間違っているのですか?

4

1 に答える 1

16

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

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);
});

chrome.apiの非同期性のため、コールバック内で変数を更新しています。

于 2013-02-12T08:41:06.400 に答える