javascript event兼容性随笔

一、前言

复制代码
 1     function ConvertEvent(e, element) {
 2         var event = e || window.event;
 3         var resultEvent = {
 4             event: event,
 5             type: event.type,
 6             target: event.target || event.srcElement,
 7             relatedTarget: event.relatedTarget || event.fromElement || event.toElement,
 8             clientX: event.clientX,
 9             clientY: event.clientY,
10             screenX: event.screenX,
11             screenY: event.screenY,
12 //            offsetX: event.offsetX,
13 //            offsetY: event.offsetY,
14             altKey: event.altKey,
15             ctrlKey: event.ctrlKey,
16             shiftKey: event.shiftKey,
17             charCode: event.charCode || event.keyCode,
18             charCodeValue: String.fromCharCode(event.charCode || event.keyCode),
19             stopPropagation: event.stopPropagation || function () { return window.event.cancelBubble = true; },
20             preventDefault: event.preventDefault || function () { return window.event.returnValue = false; }
21         };
22 
23         return resultEvent;
24     }
25 
26     var eventClass = window.Event = window.jasen.core.Event;
27     eventClass.Convert = ConvertEvent;
复制代码

 二、范例

复制代码
 <form id="form1" runat="server">
    <div>
       <input type="text" value="mouse test" onkeydown="return convert(event);" />
        <input type="button" value="mouse test" onclick="return convert(event,this);" />
    </div>
    </form>
    <script type="text/javascript">
        function convert(e) {
            var eventResult = Event.Convert(e);
            var result = "";
            for (var p in eventResult) {
                result += (p.toString() + "\t\t --->" + (eventResult[p] == null ? "null" : eventResult[p]).toString() + "\n");
            }

            alert(result);
        }
    </script>
复制代码

 

posted @   jasen.kin  阅读(796)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示