扩展浏览器原生对象原型用:
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,{
});
事件是否支持检查:
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;
}
搞定css私有前缀:
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;
}
时间: 2024-12-13 13:51:49