原型冲突请求文件在原型中命名为函数

时间:2014-08-05 15:34:13

标签: javascript jquery

我的页面中包含原型的网站,我也有使用jquery的第三方脚本。当页面加载时,控制台日志显示超过10个错误,如下所示:

function eachSlice(number, iterator, context) {    
  var index = -number
  , slices = []
  ,array = this.toArray();
  if (number < 1) 
    return array;    
  while ((index += number) < array.length)      
    slices.push(array.slice(index, index+number));    
  return slices.collect(iterator, context);  
}

当我查看原型脚本时,我看到里面有eachSlice

顺便说一下,这里是第三方脚本http://pastebin.com/sDXE3crb

导致此错误的原因是什么?

图像可能比千言万语更好。 enter image description here

1 个答案:

答案 0 :(得分:0)

从技术上讲,失败的xhr请求是一个错误。错误在第29行的smc.js中

因为你正在使用prototype.js而prototype.js正在修改核心JavaScript对象,所以会导致该错误(在smc.js中):

    for (pn in d) {
        p.push(pn + "=" + encodeURIComponent(d[pn]));
    };

您可以将其更改为:

    for (pn in d) {
      if(Object.prototype.hasOwnProperty
          .call(d,pn)){
        p.push(pn + "=" + encodeURIComponent(d[pn]));
      }
    };

这将处理此错误和不需要的服务器请求。

稍后在你的pastebin第97行还有另一个for循环可能导致问题:

    for (var i in ims) {
        d += '<img src...
    };

也许您应该确保它不会对prototype.js添加的成员执行此操作:

    for (var i in ims) {
      if(Object.prototype.hasOwnProperty
          .call(ims,i)){
        d += '<img src...
      }
    };