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

时间:2011-03-15 05:40:43

标签: 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);
            });
        },

我不知道为什么,经过一天的调试和测试后,我发现如果我从

中删除replace(/\&/g, '\\&')
String.prototype.escAll = function(){
    var s = this;
    return s.replace(/\./g, '\\.').replace(/\?/g, '\\?').replace(/\&/g, '\\&');
};

然后再次运作。我真的不知道为什么。

任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:0)

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

某些库(例如Prototype.js或jQuery.js)会更改代码的行为。例如,在某些情况下,您不能重载prototype。结果可能在 clear(明显)位置中未定义(就像使用带有错误索引的数组变量一样)。您应该查看其他库的源代码,可能是prototype在您提到的函数中破坏了代码的内容。

在我的练习中,我遇到了prototype的重载工作不正确的情况(在你的情况下它是 String prototype )。

所以不要使用prototype