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

     

  • 相关阅读:
    全国城市经纬度
    CentOS下SSH无密码登录的配置
    Nginx 1.9+PHP5.6 环境搭建
    Sphinx 2.2.11-release reference manual
    JVM 内存管理机制
    solr 3.5.0 与 tomcat 7.0.5 整合配置
    lucene 分词实现
    lucene 索引 demo
    lucene 搜索demo
    Lucene 简单API使用
  • 原文地址:https://www.cnblogs.com/honker/p/3774434.html
Copyright © 2020-2023  润新知