加个defer属性.
<script type="text/javascript" defer="defer">
  alert(document.body.offsetHeight);
</script>

解决方案 »

  1.   

    感谢,但是
    Good_Net(),在没有拦截的情况下的确是0,这点firefox和ie都验证过了。
    hookee() ,defer不支持firefox......
      

  2.   

    defer不支持firefox......
    百度上搜索 让插入到 innerHTML 中的 script 跑起来
    可得到相应的答案!
      

  3.   

    这个并没什么,spript标记中的代码在网页加载的过程中就会执行。当你第一次加载网页时,由于网页没有加载完就执行了alert语句,就会显示0,如果想在第一次打开就显示正确的值,那么就要把alert语句写在function中,然后在onload事件中调用这个函数,因为onload事件是在网页被加载完之后触发的,所以一定可以正确正显,不管你是在第几次加载时。