zoukankan      html  css  js  c++  java
  • window.onload加载完毕的问题及解决方案(上)

    我们经常使用 window.onload 来处理页面,当页面加载完成做一些事情。但这个 window.onload 是页面全部加载完成,甚至包括图片,而我们实际上经常需要的是文档 DOM 加载完毕

    解决方法,

     一、Mozilla 提供了一个非公开的(undocumented)函数:
    // for Mozilla browsers
    if (document.addEventListener) {
      document.addEventListener("DOMContentLoaded", init, false);
    }

    二、对于 IE 浏览器,可以使用IE特有的 defer 属性:

    <script defer type="text/javascript">
    alert("DOM 加载完毕!")
    </script>

    具有defer属性的脚本块会在DOM 加载完毕后执行。

    非IE浏览器会忽略 defer 而直接执行 script 代码,因此,你可以有两种办法来屏蔽非IE浏览器执行这段针对IE的代码:

    1.条件注释

    <!--[if IE]>

    <script defer type="text/javascript">
    alert("DOM 加载完毕!")
    </script>

    <![endif]-->

     

     2.条件编辑 

    <script defer type="text/javascript">

    // for Internet Explorer

    /*@cc_on @*/

    /*@if (@_win32)
    alert("DOM 加载完毕!");

    /*@end @*/
    </script>

     

    三、对于Safari,这里有一个jQuery的解决方案:

     if (/WebKit/i.test(navigator.userAgent)) { // sniff
         var _timer = setInterval(function() {
              if (/loaded|complete/.test(document.readyState)) {
                   clearInterval(_timer);
                   init(); // call the onload handler
              }
          }, 10);
     }

     

  • 相关阅读:
    MSSQL错误1069解决方法
    Xamarin的Mono for Android目前可运行于MIPS上
    Oracle大数据机和连接器产品支持与Hadoop和Cloudera Manager集成
    百度1
    恒生电子
    IGT中国
    经典笔试题——a和&a有什么区别
    腾讯HTTP协议1
    腾讯http协议2
    面向对象的三大特征
  • 原文地址:https://www.cnblogs.com/honker/p/3774434.html
Copyright © 2011-2022 走看看