我非常困惑,用setmonout只是无法正常工作,它从来没有调用函数,在网上查找人说greasemonkey不支持setTimeout,有无论如何使我的目标(下)工作?GreaseMonkey倒计时不工作?
function countdown(time, id) {
if(document.getElementById(id)) {
var name = document.getElementById(id);
var hrs = Math.floor(time/3600);
var minutes = Math.floor((time - (hrs * 3600))/60);
var seconds = Math.floor(time - (hrs * 3600) - minutes * 60);
if(hrs>0) {
name.innerhtml = hrs + 'h ' + minutes + 'm';
} else if(minutes>0) {
name.innerhtml = minutes + 'm ' + seconds + 's';
} else {
name.innerhtml = seconds + 's';
}
} else {
setTimeout('countdown(' + --time + ',' + id + ')', 100);
}
if(time <= 0)
window.location.reload();
else
setTimeout('countdown(' + --time + ',' + id + ')', 1000);
}
这是基本上是正确的,除非你使用一个字符串,而不是回调的字符串在由到一个函数并在窗口范围内调用,这就是为什么没有找到userscript函数。 userscript的沙箱范围也不会被清除,直到用户离开该页面时(即删除该页面时)。 – erikvold 2010-06-30 05:41:55