2011-03-15 10 views
7

Estoy usando Uploadify para cargar archivos en mi CMS. Todo funciona bien hasta hace poco. Tengo un error"Método de llamada de error en NPObject!" en Uploadify

Error calling method on NPObject

en esta línea

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

en esta parte

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

no sé qué y después de un día de depuración y pruebas he encontrado que si elimino replace(/\&/g, '\\&') de

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

Luego funciona de nuevo. Realmente no sé por qué.

¡Cualquier ayuda sería apreciada!

+0

Por favor, especifica el navegador que uses. – sergzach

Respuesta

0

Creo que el motivo se encuentra en las bibliotecas Javascript adicionales que utiliza.

Algunas bibliotecas (por ejemplo, Prototype.js o jQuery.js) modifican el comportamiento de su código. Por ejemplo, no puede sobrecargar prototype en algunos casos. El resultado puede estar indefinido en claro (obvio) lugares (como si utilizara una variable de matriz con índice incorrecto). Debería ver el código fuente de las bibliotecas adicionales, probablemente lo hagan con prototype algo que rompe su código en la función que mencionó.

En mi práctica tuve la situación cuando la sobrecarga de prototype funcionó incorrectamente (era String prototype como en su caso).

Así que simplemente no use prototype.

Cuestiones relacionadas