18. 文档加载事件

1. load 事件
当页面完全加载后(包括所有图像、JavaScript 文件、CSS 文件等外部资源),就会触发 window 上面的 load 事件。

<xmp>
var EventUtil = {
    addHandler: function(element, type, handler){
    //省略的代码
    },

    getEvent: function(event){
        return event ? event : window.event;
    },

    getTarget: function(event){
        return event.target || event.srcElement;
    },

    preventDefault: function(event){
        if (event.preventDefault){
            event.preventDefault();
        } else {
            event.returnValue = false;
        }
    },

    removeHandler: function(element, type, handler){
    //省略的代码
    },

    stopPropagation: function(event){
        if (event.stopPropagation){
            event.stopPropagation();
        } else {
            event.cancelBubble = true;
        }
    }
};

EventUtil.addHandler(window, "load", function(event){
  alert("Loaded!");
});
</xmp>

通过 JavaScript 来指定事件处理程序的方式.

<xmp>
<!DOCTYPE html>
<html>
<head>
<title>Load Event Example</title>
</head>
<body onload="alert('Loaded!')">
</body>
</html>
</xmp>

指定 onload 事件处理程序的方式是为 body元素添加一个 onload 特性.

根据“DOM2 级事件”规范,应该在 document 而非 window 上面触发 load 事件。但是,所有浏览器都在 window 上面实现了该事件,以确保向后兼容。

2. unload 事件
与 load 事件对应的是 unload 事件,这个事件在文档被完全卸载后触发。

<xmp>
<!DOCTYPE html>
<html>
<head>
<title>Load Event Example</title>
</head>
<body onunload="alert('Unloaded!')">
</body>
</html>
</xmp>

3. resize 事件
当浏览器窗口被调整到一个新的高度或宽度时,就会触发 resize 事件。

<xmp>
EventUtil.addHandler(window, "resize", function(event){
    alert("Resized");
});

window.resize(function(){

})
</xmp>

4. scroll 事件
scroll 事件也会在文档被滚动期间重复被触发.

<xmp>
EventUtil.addHandler(window, "scroll ", function(event){
    alert("Resized");
});

window.scroll (function(){

})
</xmp>
评论

0 条评论