有时,当我在用户脚本中使用对象并使用 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