JavaScript 跨浏览器事件处理工具
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 跨浏览器事件处理工具相关的知识,希望对你有一定的参考价值。
/** * 跨浏览器事件处理工具。只支持冒泡。不支持捕获 * @author ([email protected]) */ var EventUtil = { getEvent: function (event) { return event || window.event; }, getTarget: function (event) { return event.target || event.srcElement; }, // 返回注册成功的监听器,IE中需要使用返回值来移除监听器 on: function (elem, type, handler) { if (elem.addEventListener) { elem.addEventListener(type, handler, false); return handler; } else if (elem.attachEvent) { var wrapper = function () { var event = window.event; event.target = event.srcElement; handler.call(elem, event); }; elem.attachEvent(‘on‘ + type, wrapper); return wrapper; } }, off: function (elem, type, handler) { if (elem.removeEventListener) { elem.removeEventListener(type, handler, false); } else if (elem.detachEvent) { elem.detachEvent(‘on‘ + type, handler); } }, preventDefault: function (event) { if (event.preventDefault) { event.preventDefault(); } else if (‘returnValue‘ in event) { event.returnValue = false; } }, stopPropagation: function (event) { if (event.stopPropagation) { event.stopPropagation(); } else if (‘cancelBubble‘ in event) { event.cancelBubble = true; } }, /** * keypress事件跨浏览器获取输入字符 * 某些浏览器在一些特殊键上也触发keypress,此时返回null **/ getChar: function (event) { if (event.which == null) { return String.fromCharCode(event.keyCode); // IE } else if (event.which != 0 && event.charCode != 0) { return String.fromCharCode(event.which); // the rest } else { return null; // special key } } };
DOM 事件模型是如何的, 编写一个 EventUtil 工具类实现事件管理兼容
参考:
以上是关于JavaScript 跨浏览器事件处理工具的主要内容,如果未能解决你的问题,请参考以下文章
跨浏览器的事件对象-------EventUtil 中的方法及用法
Python 自动化 - 浏览器chrome打开F12开发者工具自动Paused in debugger调试导致无法查看网站资源问题原因及解决方法,javascript反调试问题处理实例演示(代码片段