JavaScript中的跨浏览器事件(图文教程)
程序员文章站
2022-03-10 09:31:48
...
首先值得说一下,在事件处理、事件对象、阻止事件的传播等方法或对象存在着浏览器兼容性问题,开发过程中最好编写成一个通用的事件处理工具,嗯,接下来我们一起来看一下JavaScript中的跨浏览器事件操作的基本方法整理
绑定事件
EU.addHandler = function(element,type,handler){ //DOM2级事件处理,IE9也支持 if(element.addEventListener){ element.addEventListener(type,handler,false); } else if(element.attachEvent){ //type加'on' //IE9也可以这样绑定 element.attachEvent('on' + type,handler); } //DOM0级事件处理步,事件流也是冒泡 else{ element['on' + type] = handler; } };
取消绑定事件和绑定事件的处理基本一致,有一个注意点:
传入的handler必须与绑定事件时传入的相同(指向同一个函数)
EU.removeHandler = function(element,type,handler){ if(element.removeEventListener){ element.removeEventListener(type,handler); } else if(element.attachEvent){ element.detachEvent('on' + type,handler); } else{ //属性置空就可以 element['on' + type] = null; } };
跨浏览器添加事件
function addEvent(obj,type,fn){ if(obj.addEventListener){ obj.addEventListener(type,fn,false); }else if(obj.attachEvent){//IE obj.attchEvent('on'+type,fn); } }
跨浏览器移除事件
function removeEvent(obj,type,fn){ if(obj.removeEventListener){ obj.removeEventListener(type,fn,false); }else if(obj.detachEvent){//兼容IE obj.detachEvent('on'+type,fn); } }
跨浏览器阻止默认行为
function preDef(ev){ var e = ev || window.event; if(e.preventDefault){ e.preventDefault(); }else{ e.returnValue =false; } }
跨浏览器获取目标对象
function getTarget(ev){ if(ev.target){//w3c return ev.target; }else if(window.event.srcElement){//IE return window.event.srcElement; } }
跨浏览器获取滚动条位置
//跨浏览器获取滚动条位置,sp == scroll position function getSP(){ return{ top: document.documentElement.scrollTop || document.body.scrollTop, left : document.documentElement.scrollLeft || document.body.scrollLeft; } }
跨浏览器获取可视窗口大小
function getWindow () { if(typeof window.innerWidth !='undefined') { return{ width : window.innerWidth, height : window.innerHeight } } else{ return { width : document.documentElement.clientWidth, height : document.documentElement.clientHeight } } },
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
关于Eclipse去除js(JavaScript)验证错误(详细解答)
以上就是JavaScript中的跨浏览器事件(图文教程)的详细内容,更多请关注其它相关文章!
推荐阅读
-
Win8.1系统打开IE浏览器提示服务器正在运行中的解决方法图文教程
-
Win10系统默认应用web浏览器设置中找不到Edge选项的解决方法图文教程
-
IE浏览器中把喜欢的网页添加到收藏夹图文教程
-
详细解读JavaScript的跨浏览器事件处理
-
JavaScript中的跨浏览器事件操作的基本方法整理
-
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异_javascript技巧
-
js中的eventType事件及其浏览器支持性介绍_javascript技巧
-
跨浏览器PHP下载文件名中的中文乱码问题解决方法,_PHP教程
-
Win8.1系统打开IE浏览器提示服务器正在运行中的解决方法图文教程
-
IE浏览器中图片onload事件无效的解决方法_javascript技巧