Ошибка вызова метода для NPObject! в Загрузить

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

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

Любая помощь будет оценена по достоинству!


person ByulTaeng    schedule 15.03.2011    source источник
comment
Пожалуйста, укажите браузер, которым вы пользуетесь.   -  person sergzach    schedule 28.05.2011


Ответы (1)


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

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

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

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

person sergzach    schedule 28.05.2011