zoukankan      html  css  js  c++  java
  • js中一些兼容问题及写法

    由于IE浏览器与其他普通浏览器的不同,所以有了一些不兼容的问题,下面是一些常见的兼容问题及解决兼容问题的写法:

    一般的解决兼容都是封装成一个函数:

    获取非行内样式时:

     1 //普通浏览器
     2 getComputedStyle(ele,false)[attr];
     3 //IE浏览器
     4 ele.currentStyle[attr];
     5 //兼容:
     6 function getStyle(ele,attr){
     7      if(ele.currentStyle){
     8         return ele.currentStyle[attr];
     9     }else{
    10         return getComputedStyle(ele,false)[attr];        
    11     }    
    12 }

    获取事件对象时:

    1 //普通浏览器
    2     //事件处理函数的第一个参数;
    3 //IE浏览器
    4     //通过window找event属性;
    5 //兼容:
    6 ele.onclick = function(eve){
    7   var e = eve || window.event;  
    8 }

    获取事件对象目标时:

    1 //普通浏览器:
    2     //e.target;
    3 //IE浏览器(火狐浏览器):
    4     //e.srcElement;
    5 //兼容:
    6 var e = eve || window.event;
    7 var target = e.target || e.srcElement;

    阻止事件冒泡时:

     1 //普通浏览器:
     2     //e.stopPropagation;
     3 //IE浏览器:
     4     //e.cancelBubble=true;
     5 //兼容:
     6 function stopBubble(e){
     7   if(e.stopPropagation){
     8         e.stoPropagation(); 
     9     }else{
    10         e.cancelBubble=true;
    11   }  
    12 }

    阻止默认事件时:

     1 //普通浏览器:
     2     //e.preventDefault;
     3 //IE浏览器:
     4     //e.returnValue=false;
     5 //兼容:
     6 function stopDefault(){
     7   if(e.preventDefault) {
     8     e.preventDefault();
     9   } else{
    10        e.returnValue=false;
    11   }
    12 }

    监听式绑定事件时:

     1 //普通浏览器:
     2     //ele.addEventListener;
     3 //IE浏览器: 
     4     //ele.attachEvent;
     5 //兼容:
     6 function stopDefault(ele,type,cb){
     7   if(ele.addEventListener;) {
     8      ele.addEventListener(type,cb,false);
     9    } else{
    10        ele.attachEvent("on"+type,cb);
    11    }
    12 }

    删除监听式绑定事件时:

     1 //普通浏览器:
     2     //ele.removeEventListener;
     3 //IE浏览器: 
     4     //ele.detachEvent;
     5 //兼容:
     6 function stopDefault(ele,type,cb){
     7   if(ele.removeEventListener;) {
     8     ele.removeEventListener(type,cb,false);
     9   } else{
    10        ele.detachEvent("on"+type,cb);
    11   }
    12 }
  • 相关阅读:
    常见问题|一起工作 高端互联网人才兼职平台
    一拍即合
    食茶_尼尼龙_美愿作品展示平台
    Cop-Out
    员工宝
    java~使用自己的maven本地仓库
    java~接口的共享实体使用Map后更灵活
    知其所以然~tcp和udp的区别
    知其所以然~mongodb副本集
    java--map容器的hashcode和equals
  • 原文地址:https://www.cnblogs.com/ssmin/p/12002190.html
Copyright © 2011-2022 走看看