一些web事件兼容(根据高级程序)

var EventUtil = {

//事件监听
addHandler: function( element, type, handler ) {
if ( element.addEventListener ) {
element.addEventListener(type, handler, false);
} else if ( element.attachEvent ) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
},

//移除事件
removeHandler: function( element, type, handler ) {
if ( element.removeEevntListener ) {
element.removeEevntListener(type, handler, false);
} else if ( element.detachEvent ) {
element.detachEvent("on" + type, handler);
} else {
element["on" + type] = null;
}
},

//事件对象
getEvent: function( event ) {
return event ? event : window.event;
},

//事件目标
getTarget: function( event ) {
return event.target || window.srcElement;
},

//阻止默认事件
preventDefault: function( event ) {
if ( event.preventDefault ) {
event.preventDefault();
} else {
event.returnValue = false;
}
},

//阻止事件冒泡
stopPropagation: function( event ) {
if ( event.stopPropagation ) {
event.stopPropagation();
} else {
//cancelBubble的默认值是false
event.cancelBubble = true;
}
},

//鼠标跨浏览器兼容事件
getRelatedTarget: function( event ) {
//IE8<=不支持relatedTarget,relatedTarget事件属性返回与事件的目标节点相关的节点 支持toElement和formElement
if ( event.relatedTarget ) {
return event.relatedTarget;
} else if ( event.toElement ) {
return event.toElement;
} else if ( event.formelement ) {
return event.formelement;
} else {
return null;
}
},

//鼠标按钮Button的兼容
//implementation.hasFeature检测DOM版本
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 ) {
if ( event.wheelDelta ) {
return (client.engine.opera && client.engine.opera < 9.5 ? -event.wheelDelta : event.wheelDelta);
} else {
//由于火狐的值不一样所以,这个值首先反向,然后再乘以40;
return -event.detail * 40;
}
},

//keyCode和keypress兼容
getCharCode: function( event ) {
if ( typeof event.charCode == "number" ) {
return event.charCode;
} else {
return event.keyCode;
}
},
};

能力有限,有幸能够得到您的访问,万分感谢

时间: 2024-10-08 10:09:40

一些web事件兼容(根据高级程序)的相关文章

web前端之JavaScript高级程序设计六:事件

web前端之JavaScript高级程序设计六:事件 JavaScript 与 HTML 之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间.可以使用侦听器(或处理程序)来预订事件,以便事件发生时执行相应的代码.这种在传统软件工程中被称为观察员模式的模型,支持页面的行为(JavaScript 代码)与页面的外观(HTML 和 CSS 代码)之间的松散耦合. 事件流: 事件流描述的是从页面中接收事件的顺序.但有意思的是, IE 和 Netscape 开发团队居然提出了

java 面试,java 后端面试,数据库方面对初级和高级程序员的要求

本内容摘自 java web轻量级开发面试教程 对于合格的程序员,需要有基本的数据库操作技能,具体体现在以下三个方面. l  第一,针对一类数据库(比如MySQL.Oracle.SQL Server等),会基本的增删改查操作,会用一些基本的函数,会编写存储过程触发器索引等工具. l  第二,知道一些基本的对项目开发有帮助的概念,比如范式.索引.分区等. l  第三,能编写一些相对复杂的SQL语句,比如带连接.带子查询.嵌套查询等. 对于高级程序员,用过的数据库种类当然是越多越好,此外,还要掌握如

作为高级程序员应具有的基本素质

那么作为高级程序员,以至于系统分析员,也就是对于一个程序项目的设计者而言,除了应该具备上述全部素质之外,还需要具备以下素质: 第一,需求分析能力 对于程序员而言,理解需求就可以完成合格的代码,但是对于研发项目的组织和管理者,他们不但要理解客户需求,更多时候还要自行制定一些需求,为什么这么说呢? 一般而言,进行研发任务,也许是客户提出需求,也许是市场和营销部门提出的需求,这时候对于研发部门,他们看到的不是一个完整的需求,通常而言,该需求仅仅是一些功能上的要求,或者更正规些,可能获得一个完整的用户视

高级程序员

1.敢于攻坚和创新 难题可以选取有效的方法去攻破 2.算法和基本功扎实 易于总结和扩展 3.代码结构清晰,易懂 模块易拆分,后人易上手. 4.代码可重用性高 减少代码量,易于升级和替换 如果可重用性低,那么,随着业务的扩展和升级,旧代码的修改量随需求量呈几何级数上升. 时间和人力资源,也是几何级数上升. 最终,这坨代码就会成为死代码,没有生命力,无法繁殖和继承. 后来的人,上手会很痛苦.部分人会选择重构代码. 那么,重构业务代码的前提是要充分理解业务需求.在理解不完备的前提下,去做重构,就是对a

js 判断浏览器关闭事件 兼容所有浏览器

无论是从页签处关闭浏览器,还是关闭整个浏览器窗口,无论是 ie11,火狐,谷歌,苹果,还是ie6,都能兼容的浏览器关闭事件监听 在网上搜索了一天,虽然网上也有之类的代码,但是太繁琐,有时候还不可用.我也是在原有基础上修改的.经过了上述的浏览器测试,如果有不兼容的,欢迎提出意见一起学习. ? <script type="text/jscript" src="jquery-1.10.2.min.js"></script> <script t

javascript——事件兼容(部分)

<!--跨浏览器事件兼容--> <!DOCTYPE HTML> <html> <head> </head> <meta charset="utf-8"> <body> <div> <a href="http://www.baidu.com" id="al" >Click Me</a> </div> </body

细说高级程序员的几个成长阶段

转发自:http://chuansong.me/n/1522918 软件开发是一个奇怪的行业,市场远远供不应求.这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈. 我们严重缺乏能够满足需求的人才.这个行业相当年轻.大多数软件项目是失败的.几乎所有的项目都会超出预算.我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”. 现在我们把淫浸代码时间超过3年的开发人员称为“高级开发人员”.这些人通常把持领导

如何成为一个C++高级程序员

C++这门语言从诞生到今天已经经历了将近30个年头.不可否认,它的学习难度都比其它语言较高.而它的学习难度,主要来自于它的复杂性.现在 C++ 的使用范围比以前已经少了很多,java.C#.python 等语言在很多方面已经可以代替C++.但是也有很多地方是其他语言完全无法替代的,主要集中在需要运行效率比较高的行业,比如游戏.高效的服务器. 现在学习 java.C#等语言的人数远远高于C++,主要是 C++ 的入门门槛太高,可能学习了一段时间后还做不了什么东西,导致信心大受打击,进而放弃. 我想

[Java Web] 3\WEB开发之HTML基础程序试手

1.初试: 1 <html> 2 <body> 3 <h1>My First Heading</h1> 4 <p>My first paragraph.</p> 5 </body> 6 </html> 2.标题: HTML 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的.显然由大标题变为小标题.... 1 <html> 2 <body> 3