2

有时,当我在用户脚本中使用对象并使用 TamperMonkey 扩展来运行它时,chrome's console.log()函数会被缓存。
影响它的代码是这样的。两者console.log(save);总是打印相同的,尽管永远不会相同。但是,如果我改变console.log(save[testID]['lastCheck']);它会以不同的方式打印。

function parseTestOverview(DOM)
{
    console.log(save);
    save[testID]['lastCheck'] = Date.now();
    var attempts = DOM.getElementsByClassName('answered');
    if(attempts.length == 0)
    {
        save[testID]['attempts'] = undefined;
        save[testID]['lastAttempt'] = undefined;
        save[testID]['lastAttempts'] = undefined;
        save[testID]['updated'] = false;
    }
    else if(save['lastAttempts'] || save['lastAttempts'] < attempts.length)
    {
        save[testID]['attempts'] = parseAttempts(attempts);
        var dateString = attempts[attempts.length - 1].innerText
            var dateTime = dateString.split(' ');
        var date = dateTime[0].split('-');
        var time = dateTime[1].split(':');
        save[testID]['lastAttempt'] = (new Date(date[2], date[1] - 1, date[0], time[0], time[1])).getTime();
        save[testID]['lastAttempts'] = attempts.length;
        save[testID]['updated'] = false;
    }
    else
    {
        save[testID]['updated'] = true;
    }
    GM_setValue('save', save);
    console.log(save);
    return attempts;
}

这可能不会脱离上下文,所以这里是整个脚本: http: //pastebin.com/u1qqCrt2

这也可能没有任何意义,因为它是特定于站点的脚本。

我在 Mac OS X 10.7.1 上运行 15.0.859.0 canary

4

1 回答 1

2

这是因为 webkit 只在控制台展开时显示对象的值,而不是在打印时显示。

另请参阅:https ://stackoverflow.com/a/8249333/640584

于 2012-05-30T18:50:26.267 回答