是window.onload??还是document.onLoad?? Unknown 2009/08/19

| |

我在《Firefox和IE的显示策略区别 - 解决前面Firefox的bug》中,提到了Firefox会先载入网页,再加载图片,Flash等。为了解决我的问题,我使用了setTimeout("myFunction",4000),延时以解决有时图片还没加载完成的问题。

但实际上,有时候如果图片比较少,4秒就显得太长了。有时候如果图片比较多,这4秒还不够!这可怎么办?Javascript又没这么智能。

于是,我就动脑筋动到以前body标签里的onLoad事件了。

我在Javascript中把setTimeout("myFunction",2000)改为document.onLoad=myFunction()。我的意思是,当页面完成onLoad这个事件后,就可以执行我的myFunction了。

谁想,调试下来,不成功,但奇怪的是,Firefox也不报错。我一直猜想,使用javascript的document.onLoad指定一个函数,跟在Body标签中加入onLoad是一样的。这不,很明显嘛?!

结果,我google了好多页面,尤其是这个页面(讨论得很精彩),得到的结论如下:

1、是onload,不是onLoad。
2、没有document.onload,只有window.onload。
3、是window.onload=myFunction,而不是window.onload=myFunction()如果写成后者,执行到此处的时候,会先计算一下myFunction()的返回值是多少,再传递给window.onload。只有写成前者,将myFunction这个函数指向window.onload(类似C语言中的指针变量)。

用了以后,果然就成功了。目前我就用的是window.onload方法,而不是setTimeout方法。

请给这篇日志评个分吧~!

本文评分: 5.5/10 (49 votes)    提示:您还未对本文评分,您可以进行评分并发表您的意见!

加入收藏!

发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [注册]