我的自定义javascript与sharepoint javascript(sharepoint 2010)冲突

我的自定义javascript与sharepoint javascript(sharepoint 2010)冲突,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,我在sharepoint(2010)的自定义应用程序页面中使用自定义javascript文件([mootools-1.2-core.js][1])。我在wpadder.js(驻留在14/layouts中的sharepoint javascript文件)中发现类型不匹配错误。有人能为这个问题提供解决方案吗?我建议谷歌搜索类型不匹配错误wpadder.js-第一个链接=我建议谷歌搜索类型不匹配错误wpadder.js-第一个链接=我今天偶然发现这个问题,因为我有同样的错误。Brian Brinley

我在sharepoint(2010)的自定义应用程序页面中使用自定义javascript文件([mootools-1.2-core.js][1])。我在wpadder.js(驻留在14/layouts中的sharepoint javascript文件)中发现类型不匹配错误。有人能为这个问题提供解决方案吗?

我建议谷歌搜索类型不匹配错误wpadder.js-第一个链接=

我建议谷歌搜索类型不匹配错误wpadder.js-第一个链接=

我今天偶然发现这个问题,因为我有同样的错误。Brian Brinley()指出的链接实际上有所帮助,因为它提到:

Sharepoint(可能还有一般的IE)与任何 尝试扩展阵列原型的插件/脚本

我正在编写的代码扩展了
数组。原型
包含了一个
索引方法。

if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function (obj, start) {
        for (var i = (start || 0); i < this.length; i++) {
            if (this[i] === obj) { return i; }
        }
        return -1;
    }
}

并将代码中的所有
array.indexOf(item)
替换为
indexOf(array,item)
,我今天偶然发现了这个问题,因为我有同样的错误。Brian Brinley()指出的链接实际上有所帮助,因为它提到:

Sharepoint(可能还有一般的IE)与任何 尝试扩展阵列原型的插件/脚本

我正在编写的代码扩展了
数组。原型
包含了一个
索引方法。

if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function (obj, start) {
        for (var i = (start || 0); i < this.length; i++) {
            if (this[i] === obj) { return i; }
        }
        return -1;
    }
}

并将代码中的所有
array.indexOf(item)
替换为
indexOf(array,item)
,该链接实际上没有帮助,因为它建议修改mootools以“修复”问题。我对jQuery也有同样的问题。它会打断SharePoint 2010页面顶部的web部件工具栏。正在寻找解决方案,并将对此进行发布,但第一个链接不是第三方LIB的解决方案。如果我没有记错的话,问题在于变量的范围。使用javascript的globals范围,您实际上只有两个选择,改变第三方库或sharepoint库。我建议不要使用sharepoint库,以免出现级联问题。根据我的发现,这不是变量范围的问题,而是Microsoft对for/in循环的自由使用导致了这个问题。实际上,在遍历wpadder.debug.js时,我可以找到它失败的那一行,它是一个在数组上迭代的for/in循环。它应该只返回数值,但所发生的事情——至少在jQuery的情况下——是它还返回一个字符串值“indexOf”作为索引。ExtJs用户也遇到同样的问题:这个链接实际上没有帮助,因为它建议修改mootools来“修复”这个问题。我对jQuery也有同样的问题。它会打断SharePoint 2010页面顶部的web部件工具栏。正在寻找解决方案,并将对此进行发布,但第一个链接不是第三方LIB的解决方案。如果我没有记错的话,问题在于变量的范围。使用javascript的globals范围,您实际上只有两个选择,改变第三方库或sharepoint库。我建议不要使用sharepoint库,以免出现级联问题。根据我的发现,这不是变量范围的问题,而是Microsoft对for/in循环的自由使用导致了这个问题。实际上,在遍历wpadder.debug.js时,我可以找到它失败的那一行,它是一个在数组上迭代的for/in循环。它应该只返回数值,但所发生的事情——至少在jQuery的情况下——是它还返回一个字符串值“indexOf”作为索引。ExtJs用户也遇到了同样的问题:根据记录,这种情况也发生在SharePoint 2013中。三年怎么还不足以解决这个问题呢?。记录在案的是,SharePoint 2013也发生了这种情况。三年怎么不足以解决这个问题?。。