为什么要把addEvent(login_btn,'click',showLogin);和addEvent(close,'click',hideLogin);写在window.onload=function(){}里面,写在外面不行吗?如果可以,要怎样写呢?
我也是想问这个问题,开始我想的是可能没有读取到body下面的id,所以不行,因为window.onload是页面加载完了才开始执行js代码,但是后来我把js代码写在body最下面,把addEvent写在外面还是不行...哎我也在到处求问
通常情况下,js写在文档末尾,即</body>后面,因为js的加载会使静态页面加载中断,比如js加载中部,会只出现js之前的静态页面,影响页面展示,带来不好的用户浏览体验,同理,写在前面或者头部,会加载js而不加载html,使得用户看到了长达数秒的空白的页面(一般网路状况下和一般电脑配置下),所以一般写在末尾,但如果要写在头部也是也是可以的,需要加一句window.onload,这句话的意思是在页面加载完成后加载js,效果等同于将js放在末尾。明白了吗?
不建议这么写,可能会出问题。
浏览器在解析html代码时是从上向下依次解析的。如果js代码在body标签之前和没有使用onload的情况下,则document.getElementById("xxx");这句代码可能会因为id="xxx"的元素节点还没有解析出来就被获取。但实际上是获取不到的。
而onload的意思就是说先让其它html代码解析出来,最后解析onload中的代码。
不建议这么写,可能会出问题。
因为浏览器在解析html代码的时候是从上倒下依次解析的。如果js代码在没有onload并且在body标签之前的情况下解析时;那么会出现一个问题:document.getElementById("XXX");这句代码中的id=“XXX”的元素节点还没有被解析出来,你就直接获取了。这种情况可能会出现bug