JavaScript学习--8.1(常见的js代码兼容工具总结)

1.取css样式表和非行间样式的属性

function getStyle(obj,attr){
    if(obj.currentStyle){
        return obj.currentStyle[attr];
    }else{
        return window.getComputedStyle(obj,null)[attr];  //需要选择属性的对象和一个伪元素字符如(:after)
    }
}

注意:该方法取得的元素属性带有单位的,比如height、width是px

2.为了兼容通过class来获取元素

function getByClass(classname){
       var result=[];     //用来存放筛选的元素
       var elements=document.getElementsByTag("*");
       for(var i=0;i<elements.length;i++){
               if(elements[i].className==classname){
                        result.push(elements[i]);
               }
       }
       return result;
}                

注意:获取到的是一个数组形式的,需要选择其中的加上下标就好

3.兼容性获取事件对象

function getEvent(e){
     var oEvent=e||window.event;
     return oEvent;
}

4.添加多事件句柄

function addEvent(element,type,handle){
        if(element.addEventListener){        //DOM2级
            element.addEventListener(type,handler,false);    //执行事件冒泡流
        }else if(element.attachEvent){
            element.attachEvent('on'+type,handler);
        }else{
            element['on'+type]=handler;    //任何元素支持的写法
        }

}

5.移除多事件句柄

function(element,type,handler){
        if(element.removeEventListener){        //DOM2级
            element.removeEventListener(type,handler,false);    //执行事件冒泡流
        }else if(element.detachEvent){
            element.detachEvent('on'+type,handler);
        }else{
            element['on'+type]=null;    //任何元素支持的写法
        }
}

6.返回事件的类型

function getType(e){
     var oEvent=e||window.event;
    return oEvent.type;    //不存在兼容性问题
}

7.返回事件所在的元素

function getE(e){
    var oEvent=e||window.event;
    return oEvent.target||oEvent.srcElement;

}

8.取消事件冒泡

function stop(e){
     var oEvent=e||window.event;
     if(oEvent.stopPropagation){
            oEvent.stopPropagation();
     }else{
            oEvent.cancelBubble=true;  //取消事件冒泡
     }
}

9.取消默认行为

function prevent(e){
      var oEvent=e||window.event;
      if(oEvent.preventDefault){
           oEvent.preventDefault();
      }else{
            oEvent.returnValue=false;  //取消默认事件
      }
}

10.为onload添加多个事件

function addLoadEvent(func){
    var oldLoad=window.onload;
    if(typeof(window.onload)!="function"){
        window.onload=func;
    }else{
        window.onload=function(){
            oldLoad();
            func();
        }
    }
}

最新文章

  1. 前端React开发入门笔记
  2. EM界面 ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID (DBD ERROR: OCIServerAttach)
  3. iOS -iPhone5、iPhone5s、iPhone6、iPhone6Plus 屏幕适配
  4. Java 中日期的几种常见操作 —— 取值、转换、加减、比较
  5. ajax和servlet交互
  6. Codeforces Round #342 (Div. 2) C. K-special Tables 构造
  7. 移动开发:初学 iOS-UIViewController 心得
  8. 用U盘和iso镜像文件重装系统
  9. 小米2S Mk6.0.1 [只能做测试体验,不能使用]
  10. ms_celeb_1m数据提取(MsCelebV1-Faces-Aligned.tsv)python脚本
  11. 201521123051《java程序设计》 第五周学习总结
  12. intel-hadoop/HiBench流程分析----以贝叶斯算法为例
  13. 强大的测试管理工具---TestTrack Pro
  14. ASP.NET中共有哪几种类型的控件?其中,HTML控件、HTML服务器控件和WEB服务器控件之间有什么区别
  15. Circles and Pi
  16. USB、UART、SPI等总线速率
  17. PCM转MP3工具的封装
  18. Win7 IIS7 HTTP 错误 404.2 - Not Found解决方法 ISAPI CGI
  19. beanUtils的用法
  20. itext 生成pdf文件添加页眉页脚

热门文章

  1. UVa 10148 - Advertisement
  2. 如何在windows下载和安装Apache
  3. 让php Session 存入 redis 配置方法
  4. shell读取文件的每一行
  5. 基于ASIO的协程与网络编程
  6. HTML5获取当前的经纬度坐标
  7. js实现数组去重并且显示重复的元素和索引值
  8. [源代码] SailingEase .NET Resources Tool (.NET 多语言资源编辑器)
  9. KB奇遇记(5):奇葩的用人制度
  10. Google HTML/CSS 编码规范