首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

处理浏览器之间的差异解决办法

2012-05-28 
处理浏览器之间的差异JScript code//处理浏览器之间的差异var EventUtil {addHandler: function (elemen

处理浏览器之间的差异

JScript code
//处理浏览器之间的差异var EventUtil = {    addHandler: function (element, type, handler) {        if (element.addEventListener) {            element.addEventListener(type, handler, false); //Dom2级方法        }        else if (element.attachEvent) {            element.attachEvent("on" + type, handler); //IE方法        }        else {            element["on" + type] = handler; //Dom0级方法        }    },    removeHandler: function (element, type, handler) {        if (element.removeEventListener) {            element.removeEventListener(type, handler, false);        }        else if (element.detachEvent) {            element.detachEvent("on" + type, handler);        }        else {            element["on" + type] = null;        }    },    getEvent: function (event) {//返回对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;        }    },    stopPropagation: function (event) {//阻止事件冒泡        if (event.stopPropagation) {            event.stopPropagation();        }        else {            event.cancelBubble = true;        }    },    getRelatedTarget: function (event) {        if (event.relatedTarget) {//DOM只对于mouseout、mouseover才包含值            return event.relatedTarget;        }        else if (event.toElement) {//IE mouseout            return event.toElement;        }        else if (event.fromElement) {//IE mouseover            return event.fromElement;        }        else {            return null;        }    },    getButton: function (event) {        if (document.implementation.hasFeature("MouseEvents", "2.0")) {            return event.button;        }        else {            switch (event.button) {                case 0: //表示没按下按钮                case 1: //表示按下了主鼠标按钮                case 3: //表示同时按下了主,次鼠标按钮                case 5: //表示同时按下了主鼠标按钮和中间的鼠标按钮                case 7: //表示同时按下了三个鼠标按钮                    return 0;                case 2: //表示按下了次鼠标按钮                case 6: //表示同时按下了次鼠标按钮和中间的鼠标按钮                    return 2;                case 4: //表示按下了中间的鼠标按钮                    return 1;            }        }    },    getWheelDelta: function (event) {//检测事件是否包含wheelDelta属性        if (event.wheelDelta) {            return (client.engine.opera && client.engine.opera < 9.5 ? -event.wheelDelta : event.wheelDelta);        }        else {            return -event.detail * 40;        }    },    getCharCode: function (event) {//检测charCode属性是否包含数值        if (typeof event.charCode == "number") {            return event.charCode;        }        else {            return event.keyCode;        }    }}

闲着无聊,看书看到这些,总结了下

[解决办法]
《javascript高级程序设计》...
[解决办法]
楼主好啊,学习啦~~
[解决办法]
谢谢分享...
[解决办法]
//处理浏览器之间的差异

热点排行