首页 > Web开发 > 详细

js的兼容问题以及解决方式(持续更新)

时间:2019-08-31 16:05:32      阅读:56      评论:0      收藏:0      [点我收藏+]

们在使用js操作页面的时候兼容问题是很常见的,下面将常见的兼容问题及其对应的解决方法分享给大家,并持续更新:

1、获取事件对象的兼容写法:

   IE中:window.event

      正常浏览器中:对象.on事件 = function(event){}      
//包装函数兼容写法:
function fn(eve){       var e = eve || window.event;        }
2、键盘按键获取的兼容写法:
//先获取键盘事件对象  
var eve = eve || window.event
//在通过键盘事件对像获取键盘的 按键信息
//在非IE和IE中的兼容写法
var keyC = eve.keyCode || eve.which

3、

eve.cancelBubble = true;        //兼容IE

   eve.stopPropagation();           //其他浏览器  

1 //封装函数:
  function stopBubble(e){ 2 if(e.stopPropagtion){ 3 e.stopPropagtion 4 }else{ 5 eve.cancelBubble = true; 6 } 7 }

4、阻止浏览器默认事件兼容写法:

 e.preventDefault();         //兼容IE

    window.event.returnValue = false;   //常规版
 
 还有一种无兼容问题方法:return  false
 加在需要阻止默认事件的程序末尾
//封装函数
function stopDefault(e){   if( e.preventDefault ){ e.preventDefault(); }else{ window.event.returnValue = false; }
}

5、事件的监听式绑定(DOM2级事件绑定)中绑定事件及去除事件的兼容写法:

  非IE:     oDiv.addEventListener(‘click‘,fn,false);   //添加事件

       oDiv.removeEventListener(‘click‘,fn ,false);   //删除事件

  IE :     oDiv.attachEvent();  //添加事件

         oDiv.detachEvent() ;   //删除事件

 1 //封装成两个函数的方式
 2     //添加事件
 3     function addEvent(obj,inci,back){
 4         if(obj.addEventListener){
 5             obj.addEventListener(inci,back);
 6         }else if(obj.attachEvent){
 7             obj.attachEvent("on" + inci,back);
 8         }else{
 9             obj["on"+inci] = back;
10         }
11     }
12     //去除事件    
13     function removeEvent(obj,inci,back){
14         if(obj.removeEventListener){
15             obj.removeEventListener(inci,back,false);
16         }else if(obj.detachEvent){
17             obj.detachEvent("on" + inci,back);
18         }else{
19             obj["on"+inci] = null;
20         }
21     }

 

js的兼容问题以及解决方式(持续更新)

原文:https://www.cnblogs.com/liguanlong/p/11438434.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!