Javascript对象属性未定义(GM_getValue(),GM_listValues(),Greasemonkey,Tampermonkey)

时间:2016-03-11 08:16:29

标签: javascript greasemonkey javascript-objects tampermonkey

这可能很简单,我不知道,但我正在尝试从Tampermonkey返回的对象(基本上是Greasemonkey for Chrome)GM_getValue()函数创建一个字符串。

最终代码看起来像这样......

//Call GM_listValues() to get keys of all stored values
var keys = GM_listValues();

//Code to create CSV string out of first 10 records
var csvString = '';
for (j=0; j<10; ++j) {
    var temp = GM_getValue(keys[j]);

    csvString = csvString + '"' + temp.id + '"' + ",";
    csvString = csvString + '"' + temp.time + '"' + ",";
    csvString = csvString + '"' + temp.outcome + '"' + ",";
    csvString = csvString + '"' + temp.condition + '"' + ",";
    csvString = csvString + '"' + temp.wager + '"' + ",";
    csvString = csvString + '"' + temp.chance + '"' + ",";
    csvString = csvString + '"' + temp.profit + '"' + ",";
    csvString = csvString + '\n';
}

//Code to download CSV
var a         = document.createElement('a');
a.href        = 'data:attachment/csv,' +  encodeURIComponent(csvString);
a.target      = '_blank';
a.download    = 'myFile.csv';

document.body.appendChild(a);
a.click();

然而,结果是一堆未定义的字段。当我调试时,我看到变量keys正在使用键正确填充。我看到变量temp也获得了正确的数据。当我typeof temp object时,它会说console.log(temp)所以我认为它是一个对象。

当我json_val: {"id":"2132867232","time":"07:52","outcome":"84","condition":">1","wager":"0.50000m฿","chance":"98 %","profit":"+0.00520"}时,json_val:

console.log(temp.id)是否与undefined返回temp["id"]的原因有关?

我也试过[self.profilePhotoImageView setContentMode:UIViewContentModeCenter]; [self.profilePhotoImageView setContentMode:UIViewContentModeScaleAspectFill]; [CALayer roundView:self.profilePhotoImageView]; 并且也未定义。

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

确保在文件顶部包含授权。

// ==UserScript==
// @grant     GM_getValue
// @grant     GM_listValues
// ==/UserScript==