zoukankan      html  css  js  c++  java
  • UI事件之load

    load事件属于CSS3规范中的UI事件,load事件处理程序在页面元素和资源(html/script/link/img等)全部加载完成后在window上触发,或在img元素加载完成后再img元素上触发。可以用HTML特性的方式在body元素上绑定load事件,也可以用JavaScript在window上绑定load,所有浏览器都实现了在document上触发load事件,但它们也都支持在window上触发load,以保证向后兼容。

    <html>
    <head></head>
    <!-- html特性方式 --> <body onload="alert(loaded!)"></body> </html>
    //javascript方式---推荐
    <script>
    EventUtil.addEvent(window,'load',function(event){ alert('loaded!'); });
    </script>

    上面的代码中,event对象不包含任何事件相关信息,在支持DOM的浏览器中,event.target指向document,在ie8中,不提供srcElement属性。

    下面写几个图片加载完成后触发的load事件,并说明其中的差异:

    例1:对DOM结构中的img元素绑定load事件处理程序

    var oImg = document.getElementById('img1');
    EventUtil.addEvent(oImg,'load',function(event){
        var event  = EventUtil.getEvent(event);
        alert(EventUtil.getTarget(event).src);
    });

    以上事件处理程序中可以获取到event.target,因此也就可以访问img元素的src属性。

    例2:向DOM动态插入img元素,注意一旦img指定了src图片就会开始加载,尽管它还没有被插入到DOM结构中,所以应该先绑定load事件,再指定src。

    var oImg = document.createElement('img');
    EventUtil.addEvent(oImg,'load',function(event){
        alert('loaded!');
    });
    document.body.appendChild(oImg);
    oImg.src = 'img1.png';

    例3:为Image对象绑定load事件处理程序,注意Image对象无法添加到DOM结构中,它的作用是在DOM出现前用来在页面显示图像的,同img元素一样,一旦指定src图片就会开始加载,因此应该先绑定事件。

    var oImg = new Image();
    EventUtil.addEvent(oImg,'load',function(event){
        alert('loaded!');
    });
    oImg.src = 'img1.png';

    script元素和link元素也可以绑定load事件,但是低版本浏览器不支持,与图片加载不同的是,这两个元素只有进入DOM结构才会开始加载,因此不用注意代码顺序。

  • 相关阅读:
    结合<span id="outer"><span id="inter">text</span></span>这段结构,谈谈innerHTML、outerHTML、innerText之间的区别
    字符串的方法slice、substr、substring对比
    为什么两个一样的对象,用===打印是false
    this指向
    复制对象的方法
    Promise以及async和await的用法
    前端性能优化&&网站性能优化
    P1510 精卫填海
    分解质因数
    P2648 赚钱
  • 原文地址:https://www.cnblogs.com/luoshufang/p/5710043.html
Copyright © 2011-2022 走看看