来自后台内容脚本的未定义数据

时间:2015-07-22 20:07:12

标签: google-chrome-extension

我试图从内容脚本传递数据:

var text = document.getElementsByClassName("some_class");
chrome.runtime.sendMessage({key: "abc", data: results}, function(response){});

然后在背景

中收到它
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    if (message.key == "abc") {
        var a = message.data;
        var b = message.data.innerText;
        for (var i = 0; i < message.data.length; i++) {
            var c = a[i].innerText;
        }   

我在所有变量中得到undefined。我想要做的就是将从页面到背景的集合传递给背景并在那里处理它。我做错了什么?

1 个答案:

答案 0 :(得分:0)

var text = document.getElementsByClassName("some_class");
chrome.runtime.sendMessage({key: "abc", data: results}, function(response){});

text vs results

但即便如此,你也无法传递DOM节点,因为它们不是JSON可序列化的。

您需要在内容脚本方面提取信息并仅传递您需要的信息(即,如果您只需要innerText,则传递该信息而不传递该节点)