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();
        }
    }
}

JavaScript学习--8.1的更多相关文章

  1. JavaScript学习(一) —— 环境搭建与JavaScript初探

    1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...

  2. Web编程基础--HTML、CSS、JavaScript 学习之课程作业“仿360极速浏览器新标签页”

    Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没 ...

  3. JavaScript学习(3):函数式编程

    在这篇文章里,我们讨论函数式编程. 什么是函数式编程?根据百度百科的描述,“函数式编程是种编程典范,它将电脑运算视为函数的计算.函数编程语言最重要的基础是 λ 演算(lambda calculus). ...

  4. JavaScript学习(2):对象、集合以及错误处理

    在这篇文章里,我们讨论一下JavaScript中的对象.数组以及错误处理. 1. 对象 对象是JavaScript中的一种基本类型,它内部包含一些属性,我们可以对这些属性进行增删操作. 1.1 属性 ...

  5. JavaScript学习13 JavaScript中的继承

    JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...

  6. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  7. JavaScript学习11 数组排序实例

    JavaScript学习11 数组排序实例 数组声明 关于数组对象的声明,以前说过:http://www.cnblogs.com/mengdd/p/3680649.html 数组声明的一种方式: va ...

  8. JavaScript学习10 JS数据类型、强制类型转换和对象属性

    JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...

  9. JavaScript学习09 函数本质及Function对象深入探索

    JavaScript学习09 函数本质及Function对象深入探索 在JavaScript中,函数function就是对象. JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念 ...

  10. JavaScript学习08 Cookie对象

    JavaScript学习08 Cookie对象 JavaScript Cookie Cookie对象: Cookie是一种以文件的形式保存在客户端硬盘的Cookies文件夹中的用户数据信息(Cooki ...

随机推荐

  1. iOS 沙盒

    1. 概念 某个应用程序的非代码文件存放空间. 2. 文件结构 每个沙盒有三个文件夹: Documents: 存放文件 Library: 存放默认设置或状态信息.Library/caches: 缓存文 ...

  2. 黄聪:VPS用轻松备份工具备份Wordpress,文件夹通配符

    db;log;wp-admin;wp-includes;temp;upgrade;twentyfourteen;twentyfifteen;twentysixteen;twentythirteen;t ...

  3. ipyparallel 中的 pi的求法

    1.PI的求法的数学依据 如图,可以看见在边长为1的正方形里面,有一个1/4圆,我们随机在正方形中取点,点在圆内的概率和点在正方形内的概率之比正好为两者的面积之比.这样就有在圆内的点的数目比所有点的数 ...

  4. 1.1.2.托管对象模型(Core Data 应用程序实践指南)

    托管对象模型即对象图,可以看成实体类的描述,规定了数据字段. 要想创建托管对象模型,需生成NSManagedObjectModel类的实例.

  5. 2.6. 类型(Core Data 应用程序实践指南)

    单精度浮点数与双精度浮点数:创建NSManagedObject紫雷师,如果实体中单精度或双精度浮点数类型,那么在子类里,相关特性的类型是NSNumber. 小数:涉及货币时,建议设置为小数(decim ...

  6. jquery 编写插件入门

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <sc ...

  7. spring mvc controller中获取request head内容

    spring mvc controller中获取request head内容: @RequestMapping("/{mlid}/{ptn}/{name}") public Str ...

  8. Hibernate最简单教程

    其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持.然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西, ...

  9. web下c#用jquery.tmpl.min.js插件实现分页查询_yginuo

    背景:webform或者mvc下实现插件快速分页 ps:我这里用的mvc开发的,数据库连接.用的ADO.NET实体数据模型 此案例下载地址(内含需要用到的一个插件与数据库):http://downlo ...

  10. 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标

    前言 FontAwesome 大家都不陌生,精美的图标,出现在各式各样的网页中. 最近在做 Windows Forms 应用程序,要求美观,就想能不能把 FontAwesome 图标用上,于是就有了本 ...