Chrome扩展程序通过javascript对象循环无效

时间:2015-06-03 23:52:30

标签: javascript google-chrome

我正在构建chrome扩展程序,我正在运行以下脚本:

var group = {
        'object1': {
            option1: '',
            option2: ''
        },
        'object2': {
            option1: '',
            option2: ''
        }
    };

chrome.tabs.executeScript({
    code: " \
        var group_array = [" + Object.keys(group) + "]; \
        console.log(group_array[0]); \
    "
});

由于某种原因,console.log返回object1未定义。我希望console.log返回group中第一个对象的名称,因此它应该返回object1

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我只是测试它。问题是:

"["+['object1','object2']+"]" -> "[object1,object2]"

所以

var group_array = [object1, object2];

如果直接评估字符串,则object1和object2将被视为变量而不是字符串,并且由于没有名为object1和object2的变量,评估失败。

要实现您想要的功能,您可以循环Object.keys(group)数组,并将代码逐个附加到代码,或者您可以直接使用JSON.stringify将结果解析为字符串数组:< / p>

" \
    var group_array = " + JSON.stringify(Object.keys(group)) + "; \
    console.log(group_array[0]); \
"