为了账号安全,请及时绑定邮箱和手机立即绑定

为什么要把对addEvent函数的调用写在window.onload=function(){}里面

为什么要把addEvent(login_btn,'click',showLogin);和addEvent(close,'click',hideLogin);写在window.onload=function(){}里面,写在外面不行吗?如果可以,要怎样写呢?

正在回答

4 回答

我也是想问这个问题,开始我想的是可能没有读取到body下面的id,所以不行,因为window.onload是页面加载完了才开始执行js代码,但是后来我把js代码写在body最下面,把addEvent写在外面还是不行...哎我也在到处求问

0 回复 有任何疑惑可以回复我~
#1

随性随意

就是因为会出现一些莫名奇妙的问题,所以建议还是写在onload里面。你可以找一些书,看看有没有什么解释。
2016-04-05 回复 有任何疑惑可以回复我~

通常情况下,js写在文档末尾,即</body>后面,因为js的加载会使静态页面加载中断,比如js加载中部,会只出现js之前的静态页面,影响页面展示,带来不好的用户浏览体验,同理,写在前面或者头部,会加载js而不加载html,使得用户看到了长达数秒的空白的页面(一般网路状况下和一般电脑配置下),所以一般写在末尾,但如果要写在头部也是也是可以的,需要加一句window.onload,这句话的意思是在页面加载完成后加载js,效果等同于将js放在末尾。明白了吗?

0 回复 有任何疑惑可以回复我~

不建议这么写,可能会出问题。

浏览器在解析html代码时是从上向下依次解析的。如果js代码在body标签之前没有使用onload的情况下,则document.getElementById("xxx");这句代码可能会因为id="xxx"的元素节点还没有解析出来就被获取但实际上是获取不到的

而onload的意思就是说先让其它html代码解析出来,最后解析onload中的代码。

0 回复 有任何疑惑可以回复我~

不建议这么写,可能会出问题。

因为浏览器在解析html代码的时候是从上倒下依次解析的。如果js代码在没有onload并且在body标签之前的情况下解析时;那么会出现一个问题:document.getElementById("XXX");这句代码中的id=“XXX”的元素节点还没有被解析出来,你就直接获取了。这种情况可能会出现bug

0 回复 有任何疑惑可以回复我~
#1

Lshah

但是放在body最下面也还是错的
2016-04-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么要把对addEvent函数的调用写在window.onload=function(){}里面

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信