javascript事件基础--页面事件(loade、DOMContentLoaded 、unload)

页面事件包括加载和卸载,即用户访问页面和离开关闭页面

load事件 在页面完全加载完毕触发,该事件包含所有的图形图像、外部文件(css javascript文件等),在这些之前任何DOM不会操作

DOMContentLoaded事件,作为DOM标准事件,不需要图像等全部加载,只需要DOM加载完毕即执行,比load先触发,目前Mozilla和Opera支持,IE和Safari浏览器不支持

 

1.直接使用window对象注册页面初始化事件处理函数

    <script>

            window.οnlοad=f;
          function f(){
              alert("页面加载完毕");
          }
   </script>

2.在<body >中定义onload的事件

<body οnlοad="f()">
        <script>
            function f(){
                alert("页面加载完毕");
            }
        </script>
    </body>

实际开发一般会传参

<body οnlοad="f("hello")">
        <script>
            function f(a){
                alert(a);
            }
        </script>
   </body>

 <script>

//页面加载执行多个处理函数

     window.οnlοad=function(){

                   f1("Hello");

                   f2("World");

          }

     function  f1(a){

           alert(a)

    }

 function  f2(b){

           alert(b)

    }

</script>

兼容IE

<script>
            if(window.addEventListener){
                window.addEventListener("load",f1,false);
                window.addEventListener("load",f2,false);
            }else{
                window.attachEvent("onload",f1);
                window.attachEvent("onload",f2);
            }
            function f1(){alert("页面加载完成,处理f1")}
            function f2(){alert("页面加载完成,处理f2")}
        </script>

二、DOMContentLoaded事件

<script>
            if(window.addEventListener){
                window.addEventListener("load",f1,false);
                window.addEventListener("load",f2,false);
            }else{
                window.attachEvent("onload",f1);
                window.attachEvent("onload",f2);
            }
            function f1(){alert("页面加载完成,处理f1")}
            function f2(){alert("页面加载完成,处理f2")}
            if(window.addEventListener){
                window.addEventListener("DOMContentLoaded",f,false);
            }
            function f(){alert("我提前执行了")}
        </script> 

<body>

<img src="../img/orientationa.png"/>

</body>

先弹出   我提前执行了,而当图片加载完毕只有才会  弹出load事件处理函数

兼容IE:写入脚本标签(未调通)

if(window.ActiveXObject){
                document.write("<script id=ie_onload defer src=javasript:void(0)><\/script>");//写入脚本标签
                document.getElementById("ie_onload").onreadystatechange=function(){//Script的onreadystatechange方法
                    //判断脚本标签的状态
                    if(this.readyState=="complete"){
                        //若果状态为完成,则说明文档结构加载已完毕
                        this.onreadystatechange=null;//调用预先执行的回调函数
                        f();
                    }
                }
            } 

兼容Safari,使用定时器周期性地检测Document对象的readyState属性,如果加载完成,则清除计时器,完成回调(未调通)

if(/WebKit/i.test(navigator.userAgent)){//兼容Safari
                var _timer=setInterval(function(){//定义时间检测器
                    if(/loaded|complete/.test(document.readyState)){//如果当前状态显示完成(文档加载完毕)
                        clearInterval(_timer); //清除时间监测器
                        f(); //调用预先执行的回调函数
                    }
                    
                },1000)
            } 

 页面卸载:(未调通)

  window.onunload=f;

function f(){

  alert("999")

}

window.οnbefοreunlοad=function(e){//关闭页面前提示信息

return "你的数据还没保存呢";    //没有返回值,系统不弹框

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值