在登录一些网站时,有一个username框,还有一个password框。然后一些程序页往往在网页载入时加一句onload=username.focus()。
这往往是不错的,但有一类人可能特别讨厌这句focus,比如我。我打字特别快,看到username框出现了,就开始填用户名了,接着迅速填password。这时自动来一下focus,就杯具了。密码的一部分就写到username后面去了。
其实两全其美地解决这个问题很难吗?我想了一下,其实很简单的。
我在《Firefox和IE的显示策略区别 - 解决前面Firefox的bug》中,提到了Firefox会先载入网页,再加载图片,Flash等。为了解决我的问题,我使用了setTimeout("myFunction",4000),延时以解决有时图片还没加载完成的问题。
但实际上,有时候如果图片比较少,4秒就显得太长了。有时候如果图片比较多,这4秒还不够!
这可怎么办?Javascript又没这么智能。
于是,我就动脑筋动到以前body标签里的onLoad事件了。
我在Javascript中把setTimeout("myFunction",2000)改为document.onLoad=myFunction()。我的意思是,当页面完成onLoad这个事件后,就可以执行我的myFunction了。




2009/11/26

