未定义Javascript onload函数
代码如下:未定义Javascript onload函数,javascript,Javascript,代码如下: function getTime(j){ var stopClock= new Date(); delta[parseInt(j)]=stopClock.getMilliseconds()-start.getMilliseconds(); } //REST OF THE CODE!! for (var i = 0; i < 6; i++){ start = new Date(); document.write('<img src="'+URL[i]
function getTime(j){
var stopClock= new Date();
delta[parseInt(j)]=stopClock.getMilliseconds()-start.getMilliseconds();
}
//REST OF THE CODE!!
for (var i = 0; i < 6; i++){
start = new Date();
document.write('<img src="'+URL[i]+'" width="1" height="1" alt="" onload="getTime('+i+');"/>');
}
函数getTime(j){
var stopClock=新日期();
delta[parseInt(j)]=stopClock.getmillizes()-start.getmillizes();
}
//剩下的代码!!
对于(变量i=0;i<6;i++){
开始=新日期();
文件。写(“”);
}
问题有时出现在j的某些值(例如3或5)中,它表示getTime未定义!(大部分时间都很好)
我知道这可能是因为当它到达onload行时,它可能还没有加载getTime函数,但是getTime函数位于代码的顶端,并且许多getTime都有响应…我认为尝试向请求引入回调的方式不是正确的路径。听起来您可能需要转移到另一个解决方案,可能需要使用一些jsonP或其他技术来绕过相同的域策略,然后可以附加到适当的事件
onload
甚至不是图像标记的适当事件onload
应仅在
或
标记上有效 我不确定您想做什么(特别是使用document.write),但您可以尝试将函数放入一个适当的范围,例如document范围
// pass the start time in milliseconds as well
document.getTime = function(startInMillis, j) {
var stopClock= new Date();
delta[j]=stopClock.getMilliseconds()-start.getMilliseconds();
};
并尝试使用下一行代码中的document.getTime()。您还可以看到,我也将start变量放入了getTime()中。鉴于映像的加载时间不同步(尽管循环是同步的),您需要确保将其传递到函数中,否则可能会得到错误的结果。您是否尝试过使用firebug之类的JS调试工具进行调试?是的,我就是这样得到错误的!(getTime未定义)您建议如何测量下载图像所需的时间?onload用于、、、、。谢谢,这解决了我的问题,但现在尚未定义增量!但我有一个var delta=[];在脚本的顶部!顺便说一下,行应该是这样的:delta[parseInt(j)]=stopClock.getmillizes()-startInMillis;在哪里实例化增量?您可能想做的是将整个内容包装到onload函数中。例如,在jquery中,您希望使用$(document).ready()函数