美文网首页
js中的几种兼容函数

js中的几种兼容函数

作者: 沐盺zz | 来源:发表于2017-12-23 11:48 被阅读0次

今天给大家分享几个在js中会遇到的兼容函数。

//1.兼容函数(addEventListener)
function ready(arg){
//如果浏览器支持window.addEventListener就用,否则就用别的方法
if(window.addEventListener){
window.addEventListener("DOMContentLoaded",arg,false);
}else{
//获取头部节点
var head = document.getElementsByTagName("head")[0];
//创建script标签
var myScript = document.createElement("script");
head.appendChild(myScript);
//监控script标签是否创建成功,如果创建成功就执行arg函数
myScript.onreadystatechange = function(){
if(myScript.readyState == "complete"){
//script节点创建成功,执行arg函数
arg();
}
}
}
}

//2.根据类名查找节点的函数(getElementSByClassName)
function findClass(className,obj){
//主流浏览器支持getElementsByClassName函数
if(window.getElementsByClassName){
var eles = obj.getElementsByClassName(className);
}else{
//IE浏览器不支持
var tags = document.getElementsByTagName("*");
var eles = [];
for(var i = 0;i < tags.length;i++){
//符合的字符串
var reg = new RegExp("\b" + className + "\b");
if(reg.test(tags[i].className)){
eles.push(tags[i]);
}
}
}
return eles;
}

//3. 添加事件兼容写法(attachEvent)
    function addEvent(type, element, fn) {
        if(element.attachEvent) {
            element.attachEvent("on" + type, fn);
        } else if(element.addEventListener) {
            element.addEventListener(type, fn, true);
        } else {
            element["on" + type] = fn;
        }
    }

//4.样式兼容方法(getComputedStyle)
    function getStyle(obj,styleName){
        if(window.getComputedStyle){
            //主流浏览器
            var styles = getComputedStyle(obj,null)[styleName];
        }else{
            //IE浏览器
            var styles = obj.currentStyle[styleName];
        }
        return styles;
    }
    
//5.滚轮事件兼容方法(onmousewheel)
    function mouseWheel(obj, fn){
        //判断是否是火狐浏览器
        var ff = navigator.userAgent.indexOf("Firefox");
        if (ff != -1) {
            obj.addEventListener("DOMMouseScroll", wheel, false);
        }else{
            obj.onmousewheel = wheel;
        }
        function wheel(event){
            var event = event || window.event;  
            var down = true; //判断是否向下滚动
            if (event.preventDefault){ //清除默认事件
                event.preventDefault();
            }
            if (event.detail){ //FF
                down = event.detail < 0;
            }else{
                down = event.wheelDelta > 0;
            }
            fn.apply(obj,[event, down]); //注解:fn是作为参数传进来的函数,这里通过apply方法调用fn的同时,并将当前对象和所需参数赋给fn
            // fn.call(obj,event,down);
            return false;
        }
    }

相关文章

  • js中的几种兼容函数

    今天给大家分享几个在js中会遇到的兼容函数。 //1.兼容函数(addEventListener)function...

  • 面试总结

    1.的作用 2.Js中函数的几种声明方式 1.Function Declaration(函数定...

  • 06_JS面向对象

    创建函数的几种方式 函数的构造函数Function 在 js 中 使用Function可以实例化函数对象。也就是说...

  • this深入理解

    js中this指向有几种情况 全局环境 函数调用 构造调用 apply、call、bind绑定 箭头函数 全局环境...

  • Node.js 中require module的几种模式(Mod

    在node.js中require module常见的有以下几种模式 将exports设置为函数 foo.js mo...

  • JS中this关键字详解

    1、JS中函数的几种调用方式 (1)普通函数调用(2)作为对象方法调用(3)作为构造函数调用(4)apply/ca...

  • 6、函数的类型

    函数的类型: 以上的几种方法创建的函数,除了匿名函数外,其他的都属于普通函数,但是JS还有几种特殊的的函数类型 回...

  • jQuery 学习 6-22

    以下针对jQuery1.xxx的版本的问题1.入口函数中,js和jQuery的区别 2.jQuery入口函数的几种...

  • js ------ 函数声明和函数表达式

    js创建对象几种方式 js 函数声明 和 函数表达式函数声明 函数表达式 函数表达式: 下面的函数都会直接运行

  • JS中创建函数的几种方式

    1.使用 "函数声明" 创建函数函数声明具有函数声明提升的特点,将函数声明提升到作用域顶端,意思是在执行代码之前会...

网友评论

      本文标题:js中的几种兼容函数

      本文链接:https://www.haomeiwen.com/subject/hcofgxtx.html