IE6与IE7的unshift 方法

又发现一个IE不标准的地方,unshift方法会返回新数组的长度,但IE6与IE7则返回undefined。

我们可以通过以下方式修正此bug:

       var ie = (" " + (/*@cc_on @_jscript_version  @*/ - 1)).slice(-1);
       if(ie== 6 || ie==7 ||  document.documentMode && document.documentMode !== 8){
          var fn = "prototype",
          unshiftFix = function () {//改变原对象
            var args = [0,0];
            for(var i=0,n=arguments.length;i<n;i++){
              args[args.length] = arguments[i]
            }
            Array[fn].splice.apply(this, args);
            return this.length; //返回新数组的长度
          }
          Array[fn].unshift = unshiftFix
        }

你可能感兴趣的:(ie6)