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);
     }

     

  • 相关阅读:
    【JS基础】数组
    【JS基础】循环
    【JS基础】DOM操作
    移动端字体
    【JQ基础】
    【JS基础】
    WebBrowser.DocumentText引发FileNotFound异常
    抽取网络信息进行数据挖掘 建立语料库
    文本分类和聚类有什么区别?
    C# 读取网页源代码
  • 原文地址:https://www.cnblogs.com/honker/p/3774434.html
Copyright © 2011-2022 走看看