"Ошибка вызова метода в NPObject!" в Uploadify - PullRequest
7 голосов
/ 15 марта 2011

Я использую 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);
            });
        },

Iне знаю, почему, и после дня отладки и тестирования я обнаружил, что если я удаляю replace(/\&/g, '\\&') из

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

, то он снова работает.Я действительно не знаю почему.

Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 28 мая 2011

Я думаю, что причина в дополнительных библиотеках Javascript, которые вы используете.

Некоторые библиотеки (например, Prototype.js или jQuery.js) изменяют поведение вашего кода.Например, вы не можете перегрузить prototype в некоторых случаях.Результат может быть неопределенным в чистых (очевидных) местах (например, вы используете переменную массива с неверным индексом).Вы должны просмотреть исходный код дополнительных библиотек, вероятно, они делают с prototype что-то, что нарушает ваш код в функции, которую вы упомянули.

В моей практике была ситуация, когда перегрузка prototype работала неправильноэто был прототип строки как в вашем случае).

Так что просто не используйте prototype.

...