扩展浏览器原生对象原型用:
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; }