how ejemplos javascript google-maps prototypejs

how - prototype javascript ejemplos



"Controlador indefinido" de la lĂ­nea prototype.js 3877 (4)

Un problema muy nicho:

A veces (30% de las veces) recibo un error de javascript ''manejador indefinido'' en la línea 3877 de la biblioteca prototype.js (versión 1.6.0.2 de google: http://ajax.googleapis.com/ajax/libs/prototype/ 1.6.0.2/prototype.js ).

Ahora, en esta página, tengo un mapa de Google y uso la biblioteca de la ventana de prototipos.

El problema ocurre en IE7 y FF3.

Esta es la información que FireBug brinda:

handler is undefined ? in prototype.js@3871()prototype.js (line 3877) handler.call(element, event);

Cambié a una versión local de prototypejs y agregué alguna depuración en el método ofensivo (createWraper) pero la depuración nunca aparece antes del error ...

Busqué en Google y encontré otra mención del error en la misma línea, pero no tengo respuesta, así que la publico aquí, donde quizás algún día alguien tendrá una respuesta :).



Esto probablemente cause un error:

Event.observe(myElement, ''click'', myFunction(myParameters));

Deberías hacerlo así en su lugar:

Event.observe(myElement, ''click'', function() { myFunction(myParameters) });


Me acabo de enterar de que este error también ocurre si accidentalmente se deja en el paréntesis en su llamada de observador:

Event.observe(document, ''myapp:application_ready'', myapp.MyClass.initApp());

en lugar de

Event.observe(document, ''myapp:application_ready'', myapp.MyClass.initApp);


Cambié a una versión local de prototypejs y agregué alguna depuración en el método ofensivo (createWraper) pero la depuración nunca aparece antes del error ...

En realidad, la función ofensiva que se llama cuando se produce el error es "envoltorio" que se crea dentro de createWrapper (pero no se llama allí). Básicamente, lo que está sucediendo es que ha adjuntado una función como el controlador de eventos para un elemento, y la función en realidad no existe.

Si está tratando de poner cualquier información de depuración para intentar identificar qué función "no existe", agregue sus mensajes de alerta o la salida de la consola Firebug dentro de la función contenedora entre las líneas 3871 y 3878.