"错误调用NPObject上的方法!" 在Uploadify中

Byu*_*eng 7 javascript flash replace uploadify function-prototypes

我正在使用Uploadify在我的CMS中上传文件.一切都很好,直到最近.我收到了一个错误

Error calling method on NPObject

在这条线上

document.getElementById(jQuery(this).attr('id') + 'Uploader').startFileUpload(ID, checkComplete);

在这一部分

uploadifyUpload:function(ID,checkComplete) {
            jQuery(this).each(function() {
                if (!checkComplete) checkComplete = false;
                document.getElementById(jQuery(this).attr('id') + 'Uploader').startFileUpload(ID, checkComplete);
            });
        },
Run Code Online (Sandbox Code Playgroud)

我不知道为什么,经过一天的调试和测试,我发现如果我replace(/\&/g, '\\&')从中移除

String.prototype.escAll = function(){
    var s = this;
    return s.replace(/\./g, '\\.').replace(/\?/g, '\\?').replace(/\&/g, '\\&');
};
Run Code Online (Sandbox Code Playgroud)

然后再次工作.我真的不知道为什么.

任何帮助将不胜感激!

ser*_*ach 0

我认为原因在于您使用的其他 Javascript 库。

某些库(例如 Prototype.js 或 jQuery.js)会更改代码的行为。例如,在某些情况下不能超载prototype。结果可能在明确(明显)的地方未定义(例如您使用索引错误的数组变量)。您应该查看其他库的源代码,它们可能会prototype破坏您提到的函数中的代码。

在我的实践中,我遇到过重载工作不正确的情况prototype(它是像您的情况一样的字符串原型)。

所以就不要使用prototype.