从chrome.tabs.executeScript返回值

use*_*449 12 google-chrome-extension

在popup.js中,我使用以下代码显示当前选项卡的某个div id中的所有文本 - 并显示在alert中.我想知道如何将div文本保存到popup.js中的变量?

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

以上工作正常,但当我尝试这个:

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

要么

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

什么都没有存储.我显然是错误的做法.我究竟做错了什么?

Sud*_*han 15

使用以下代码,

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);
});
Run Code Online (Sandbox Code Playgroud)

由于chrome.api的异步特性,你在回调中有更新变量