以下是代码:
function getTime(j){
var stopClock= new Date();
delta[parseInt(j)]=stopClock.getMilliseconds()-start.getMilliseconds();
}
//REST OF THE CODE!!
function func(){
{
for (var i = 0; i < 6; i++){
start = new Date();
document.write('<img src="'+URL[i]+'" width="1" height="1" alt="" onload="getTime('+i+');"/>');
}
}
//SOME CODE
setTimeout(function() {
func();
},100);
但是我收到了这个错误:getTime未定义
如果我这样声明getTime:
document.getTime= function (j)
没有错误,但它永远不会执行该功能。
如果我卸下了setTimeout,它就可以正常工作了。
有什么想法吗?
谢谢,
答案 0 :(得分:6)
您正在使用document.write
电话破坏DOM。在某些浏览器中,这也会破坏全局变量。
而不是document.write
,请尝试...
for (var i = 0; i < 6; i++){
var img = document.body.appendChild(document.createElement('img'));
img.src = URL[i];
img.width = 1;
img.height = 1;
img.onload = makeHandler(i);
}
function makeHandler(i) {
return function() {
getTime(i);
};
}
以下是清除全局变量的简单演示......
在Firefox中,第二个提醒将是undefined
。在Chrome中,全局保留。
window.foo = 'bar';
alert(window.foo); // now we have it
setTimeout(function() {
document.write('new content');
alert(window.foo); // now we don't
}, 100);
答案 1 :(得分:-2)
getTime()是Javascript中的预定义函数,请更改名称,它应该可以正常工作
答案 2 :(得分:-3)
也尝试使用如下的settimeout:
setTimeout('func',100);
这会在您的浏览器上做得更好吗?