zoukankan      html  css  js  c++  java
  • window.onload兼容ie和ff以及多次调用导致相冲突的解决方法

      有的JavaScript脚本必须等待页面加载结束 才能正常执行。

         对于这样的情况有两个解决方法:
      1、将脚本写到html的结束位置。这样只有html全部接在完毕后才会加载执行JavaScript脚本。
      2、将脚本放在任意位置。通过 window.onload来执行脚本。 window.onload的意思是当页面加载完毕的时候执行。

    ***********************************************************************

      一般使用下面的办法来执行页面加载时所需要调用的函数:

               <!-- 页面加载脚本 -->
            <script type="text/javascript">
                window.onload = function(){
                    if(window.document.all){
                        window.attachEvent("onload", windowOnload);
                    } else {
                        window.addEventListener("load", windowOnload(), false);
                    }
                }
                //页面加载时需要执行的方法
                function windowOnload(){
                    alert(2);
                }
            </script>

    ********************************************************************************

      但是,一般的大型项目中都包含框架,如果框架页面里也调用了window.onload方法,或者body触发了onload事件(即:<body onload="javascript: test();"></body>),然后在框架中的局部页面也需要触发window.onload事件,此时就需要使用下面的办法来避免多次调用window.onload方法导致的冲突问题了:

      先定义一个全局的方法:     

      function addLoadEvent(func){   
        var oldonload=window.onload;  
        if(typeof window.onload!='function'){  
          window.onload=func;  
        }else{  
          window.onload=function(){  
          oldonload();  
          func();  
          }  
        }  
      }  
      接下来,在框架页面和局部页面中,都可以通过这样方式来调用window.onload()方法:
        <!-- 页面加载脚本 -->
      <script type="text/javascript">
        addLoadEvent(windowOnload);   
        function windowOnload(){

          alert(2);

        }

      </script>

  • 相关阅读:
    csv,exl自动提取表头两列英文字段按英文名称排序显示
    javascript:的用法
    OLAP ODS 项目总结 BI 中的关键
    一些性能查询的SQL 备忘
    ArcGIS 10 SDE for ORACLE 迁移 (3)
    如何测试一个ETL_BI 系统
    ArcGIS 10 SDE for ORACLE 迁移 (2)
    fsck.ext3: Unable to resolve 'LABEL=/design'
    ArcGIS 10 SDE for ORACLE 迁移 (4)
    BI 中关于度量的SQL计算
  • 原文地址:https://www.cnblogs.com/pricks/p/1621935.html
Copyright © 2011-2022 走看看