zoukankan      html  css  js  c++  java
  • js的兼容问题以及解决方法

    们在使用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.stopPropagation){ 3 e.stopPropagation(); 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     }
  • 相关阅读:
    背水一战 Windows 10 (26)
    背水一战 Windows 10 (25)
    背水一战 Windows 10 (24)
    背水一战 Windows 10 (23)
    背水一战 Windows 10 (22)
    背水一战 Windows 10 (21)
    背水一战 Windows 10 (20)
    背水一战 Windows 10 (19)
    背水一战 Windows 10 (18)
    背水一战 Windows 10 (17)
  • 原文地址:https://www.cnblogs.com/liguanlong/p/11438434.html
Copyright © 2011-2022 走看看