修复IE(lte 8) ArraySlice 调用在DOM集合时脚本报错的补丁


(function(){
	/**
	 * fix IE(lte 8) script error of ArraySlice called on HTMLCollection || NodeList
	 */
	try{Array.prototype.slice.call(document.forms)}catch(_){
		var ArrayFrom=function(obj){
			if(obj instanceof Array)return obj;
			var l=obj.length>>>0,arr=[];
			for(var i=0;i<l;i+=1)arr[i]=obj[i];
			return arr;
		};
		var ArraySlice=Array.prototype.slice;
		Array.prototype.slice==function(){
			if(this===window||this==null){
				throw new Error("Array.prototype.slice called on null or undefined");
			}
			if(!(this instanceof Object)&&typeof this==="object"){
				return ArraySlice.apply(ArrayFrom(this),arguments);
			}
			return ArraySlice.apply(this,arguments);
		};
	}
})();


你可能感兴趣的:(array,IE,prototype,bug,slice)