~(function() {
// array pollyfill
Array.prototype.forEach = Array.prototype.forEach || function(fn) {
var self = this, el;
for (var i = 0, len = self.length; i < len; i++) {
el = self[i];
fn(el, i);
}
}
})();
~(function(){
// event pollyfill
var HTMLElement = HTMLElement || Element;
var addEvent = HTMLElement.prototype.addEventListener || HTMLElement.prototype.attachEvent;
var removeEvent = HTMLElement.prototype.removeEventListener || HTMLElement.prototype.detachEvent;
HTMLElement.prototype.addEventListener = function (type, fn) {
var self = this, events = self.events = self.events || {};
type = (HTMLElement.prototype.attachEvent ? 'on' : '') + type;
fn._wrap = function(e) {
e = e || window.event;
e.target = e.target || e.srcElement;
e.preventDefault = e.preventDefault || function() {
e.returnValue=false;
};
e.stopPropagation = e.stopPropagation || function() {
e.cancelBubble = true;
}
fn.call(self, e);
}
addEvent.call(self, type, fn._wrap);
events[type] = events[type] || [];
events[type].push(fn);
}
HTMLElement.prototype.removeEventListener = function(type, fn) {
var self = this, events = self.events;
type = (HTMLElement.prototype.attachEvent ? 'on' : '') + type;
fn && removeEvent.call(this, type, fn._wrap);
!fn && events[type] && events[type].forEach(function(fn) {
removeEvent.call(self, type, fn._wrap);
})
}
})();
document.documentElement.addEventListener('click', function(e) {
console.log(1);
});
document.documentElement.addEventListener('click', function(e) {
console.log(2);
});
document.documentElement.removeEventListener('click');
原生js屏蔽event兼容性
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 一、原生js事件 load:让一个画面完成加载 unload:在用户退出页面时发生 blur:失去焦点 focus...
- 转自https://segmentfault.com/a/1190000003732752 模块标准 现在的前端模...
- 原生js方法 document.getElementsByClassName在ie8及其以下浏览器中不能使用,所以...