说到 JavaScript 的初始化装载, 可能 onload 是被立刻想到的方法. 但是 onload 不是在 document 加载完成的时候调用的, 而是在页面所有元素 (包括图片等) 全部加载完成才会调用. 也就是说, 如果你的页面上有个尺寸很大的图片, 下载需要很长时间, 那么你的脚本就一直不能被初始化, 直到图片装载完成, 严重影响用户体验.
现在的问题是我在body 中 <body class="body" onload="winmargin();"> 
页面是在body 都生成后再根据我的设置再调整,就是有一个延迟了。不知道使用什么方法可以避免这样。 
不用onload好像有一个on..什么的,不记得了,可以做到初始化,大家帮忙看看。谢谢哪位大哥帮帮解决一下啊?不胜感激! 

解决方案 »

  1.   

    直接CSS设置body的margin属性;
    如果是对body属性设置 margin 属性设置,可以在 body 之后直接调用函数(在前面应定义好)
      

  2.   

    这个没有统一的方法,Firefox和其他浏览器有DOMContentLoaded可以用,效果就是你说的HTML加载完成即触发。
    IE没有相应的事件,但是IE的script标签支持defer。不过defer只对外联的JavaScript有效,也就是说直接放页面里的JavaScript即使是用了defer也没用。defer之后的外联JavaScript里面就可以直接调用函数了,不用再放onXXX里面。
    至于怎么同时兼容IE和其他浏览器LZ就自己考虑下吧,其实网上也有很多文章讲了这个的,搜关键字“IE DomContentLoaded”
      

  3.   

    jquery
    可以帮你解决这个问题
      

  4.   

    吧你在onload中的js
    添加在在body的最最后面的位置