js 函数 杂

时间:2014-06-02 11:51:31   收藏:0   阅读:269

扩展浏览器原生对象原型用:

bubuko.com,布布扣
function extend(target,source){
    var toString = Object.prototype.toString,
    hasOwn = Object.prototype.hasOwnProperty,back = {};
    if(toString.call(source) !== [object Object]){
        return;
    }
    for(var ind in source){
        if(hasOwn.call(source,ind) && typeof source[ind] === function){
            if (!target[ind]) {
                target[ind] = source[ind];
            }else{
                back[ind] = source[ind];
            };
        }
    }
    return back;
}

extend(Array.prototype,{
    
});
bubuko.com,布布扣

事件是否支持检查:

bubuko.com,布布扣
eventSupport(eventName,el){
    el = el || document.documentElement;
    eventName = ‘on‘+eventName;
    var ret = eventName in el;
    if(el.setAttribute && !ret){
        el.setAttribute(eventName,‘return ;‘);
        ret = typeof el[eventName] === ‘function‘;
        el.removeAttribute(eventName);
    }
    el = null;
    return ret;
}
bubuko.com,布布扣

搞定css私有前缀:

bubuko.com,布布扣
var prefixes = [‘‘,‘-webkit-‘,‘-o-‘,‘-moz-‘,‘-ms-‘];
var cssMap = {
    ‘float‘:support(‘cssFloat‘)? ‘cssFloat‘:‘styleFloat‘,
    ‘background‘:‘backgroundColor‘
}
function camelize(target){
    if(target.indexOf(‘-‘) < 0 && target.indexOf(‘_‘) < 0){
        return target;
    }
    return target.replace(/[-_][^-_]/g,function(match){
        return match.charAt(1).toUpperCase();
    });
}
function cssName(name,host,camelCase){
    if(cssMap[name]){
        return cssMap[name];
    }
    host = host || document.documentElement;
    for(var i = 0, n = prefixes.length; i < n; i++){
        camelCase = camelize(prefixes[i]+name);
        if(camelCase in host){
            return (cssMap[name] = camelCase);
        }
    }
    return null;
}
bubuko.com,布布扣

 

js 函数 杂,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!