html5 api方法 的兼容处理(前缀处理)

3 篇文章 0 订阅
3 篇文章 0 订阅
HTML5 API方法的前缀兼容处理
Web API的前缀兼容处理
/*html5 前缀兼容处理*/

var runPrefixMethod = function(element, method) {
    /*
     参数:
     element:元素
     method: 方法名(Requestscreen/RequestAnimationFrame)
     */
    var usablePrefixMethod; /*定义变量 ---- 方法名称*/
    ["webkit", "moz", "ms", "o", ""].forEach(function(prefix) {
        /*
         forEach(function(curVal, index, arr){
         //curVal: 必需。当前元素的值
         //index: 可选。当前元素的索引值
         //arr: 可选。当前元素所在的数组
         })
         prefix为当前元素的值,并作为第一个参数传递给回调函数
         */
        /*对后缀进行遍历*/
        if (usablePrefixMethod) return; /*判断后缀是否存在,存在则跳出循环遍历*/
        if (prefix === "") {
            // 无前缀,方法首字母小写
            method = method.slice(0,1).toLowerCase() + method.slice(1);
        }
        /*
         利用typeof 返回操作数的类型(返回值为字符串)
         返回的值如下:
         "number"
         "undefined"
         "boolean"
         "object"
         "function"
         "string"
         */
        var typePrefixMethod = typeof element[prefix + method];

        if (typePrefixMethod + "" !== "undefined") {
            /*typeof 返回的值不是undefined*/
            if (typePrefixMethod === "function") {
                usablePrefixMethod = element[prefix + method]();
            } else {
                usablePrefixMethod = element[prefix + method];
            }
        }else{
            /*typeof 返回的值是undefined ,说明该方法不存在*/
            console.log(typePrefixMethod);
        }
    });
    return usablePrefixMethod; /*返回 后缀处理完成的 方法的名称*/
};

/*
 方法的使用:
 通过调用 runPrefixMethod 是否有返回值
 runPrefixMethod(ele, method);
 ele: 获取的DOM元素(如document)
 method: 需要进行前缀兼容处理的方法名(如 Requestscreen)
 注意: 如果全屏API,需进行判断是否处于全屏状态


 */


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值