gpt4 book ai didi

javascript - "function is not defined"在 setTimeout 中调用 document.write 之后?

转载 作者:行者123 更新时间:2023-11-30 05:58:37 25 4
gpt4 key购买 nike

代码如下:

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,它将毫无问题地工作。

有什么想法吗?

谢谢,

最佳答案

您正在使用 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 中,全局被保留。

http://jsfiddle.net/Z9NbR/

window.foo = 'bar';

alert(window.foo); // now we have it

setTimeout(function() {
document.write('new content');

alert(window.foo); // now we don't
}, 100);

关于javascript - "function is not defined"在 setTimeout 中调用 document.write 之后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10239468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com