2021-08-13 js-你还在为不同浏览器兼容问题而烦恼吗

// 创建一个对象,封装兼容的DOM 2级 事件处理函数 的添加/删除,获取事件对象,阻止事件冒泡,取消默认行为
// 对象下只包含属性和方法,属性用于存储数据即变量,方法用来书写功能语句,即函数。
var eventUntil = {
    // 兼容添加事件处理函数
    addHandler: function(dom, type, fn) {
        if (dom.addEventListener) {
            dom.addEventListener(type, fn, false);
        } else if (dom.attachEvent) {
            dom.attachEvent("on" + type, fn);
        } else {
            dom['on' + type] = fn;
        }
    },
    // 兼容删除事件处理函数
    removeHandler: function(dom, type, fn) {
        if (dom.removeEventListener) {
            dom.removeEventListener(type, fn, false);
        } else if (dom.detachEvent) {
            dom.detachEvent("on" + type, fn);
        } else {
            dom['on' + type] = null;
        }
    },
    // 兼容获取事件对象
    getEventObject: function(e) {
        return e || window.event;
    },
	// 兼容获取事件源
	getEventTarget: function(e) {
		var eve = this.getEventObject(e);
		// 兼容IE的事件对象
		if (eve.target) {
			return eve.target
		} else {
			return eve.srcElement
		}
	},
    // 兼容阻止事件冒泡
    stopPropagation: function(e) {
        // 想要调用同一对象下的方法,需要用this
        var eve = this.getEventObject(e);
		// 兼容IE的阻止事件冒泡
        if (eve.stopPropagation) {
            eve.stopPropagation();
        } else {
            eve.cancelBubble = true;
        }
    },
    // 兼容取消默认行为
    preventDefault: function(e) {
        var eve = this.getEventObject(e);
        if (eve.preventDefault) {
            eve.preventDefault();
        } else {
            eve.returnValue = false;
        }
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值