Foros del Web » Programando para Internet » Javascript »

Bug para console.log en IE9

Estas en el tema de Bug para console.log en IE9 en el foro de Javascript en Foros del Web. Estuve buscando por el foro, y no encontré nada respecto a esto, por lo tanto lo pongo como advertencia, quizás sea un tema ya conocido, ...
  #1 (permalink)  
Antiguo 28/05/2012, 13:44
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Información Bug para console.log en IE9

Estuve buscando por el foro, y no encontré nada respecto a esto, por lo tanto lo pongo como advertencia, quizás sea un tema ya conocido, pero un poco por casualidad, me sucedió en estos días, así que creo no está demás postearlo.

Quienes debugueamos nuestras scripts para verificar compatibilidad y funcionamiento en los diferentes navegadores recurrimos habitualmente al comando console (console.log para ser más preciso, ya que ese método esta soportado en las consolas de los principales navegadores, FF, IE9, Chrome, Safari, Opera).

Tampoco descarto, aunque es muy improbable, que esto pase solo en mi IE, y que el problema se origine en algún plugin, complemento, o incluso un fallo del propio Windows.

Puntualmente, en IE9 (que integra la consola en las herramientas de desarrollo, tecla F12), hay un corportamiento erróneo, y que si es pasado por alto, nos puede provocar más de un dolor de cabeza.

Les pongo un ejemplo concreto, que es más fácil de entender
tomemos una script sencilla:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>Console Log IE</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. var a= 2;
  9. function fjs(valor){
  10. console.log('El valor de A es: ', a);
  11. var n = a+valor;
  12. console.log('El valor de N es: ', n);
  13. alert(n);
  14. }
  15. //]]>
  16. </head>
  17. <button onclick="fjs(5);">Ejecutar</button>
  18. </body>
  19. </html>

Si tenemos cerrado el IE, o se encuentra abierto y NO está activa la consola, la script anterior, va a fallar, el alert con la suma no se va a ejecutar, pero, en cuanto activemos la consola y refresquemos la página, se va a ejecutar perfectamente y va a mostrar los mensajes, y si cerramos las herramientas de desarrollo, va a seguir ejecutándose sin problemas.
El conflicto aparece solo al abrir la página por primera vez y, repito, si no se activa la consola.
Imaginense entonces, que la script funciona en Firefox, pasamos a IE y deja de funcionar, activamos la consola para ver que puede estar mal, pero ahora se ejecuta....hummm... sería algo en la caché nos preguntamos?, por las dudas, la vaciamos, cerramos el navegador y probamos de vuelta, pero ya no funciona más... y de ahi en más muchas otras combinaciones posibles.

Bueno, si alguno prueba y puede confirmar mis observaciones, me gustaría las hagan llegar. Espero que les pase los mismo, ya que no tengo ganas de formatear !!!!
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #2 (permalink)  
Antiguo 07/06/2012, 09:24
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Bug para console.log en IE9

buenas @emprear.
creo recordar que alguna vez tuve un problema similar con el objeto console pero no recuerdo con cual navegador fue, probablemente entre firefox e iexplorer. pero no importa, hoy lo volví a comprobar en iexplorer y efectivamente me sucede lo mismo. el caso particular de iexplorer es que el objeto console inicialmente no se define hasta que se abra al menos una vez la consola del navegador. y lo que es más molestoso es que dicho objeto se define por pestaña. es decir, si abres una nueva pestaña con el mismo documento nuevamente tienes que abrir la consola para esa pestaña. para comprobar que no se define el objeto, puedes hacer un alert de self.console.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 07/06/2012, 10:53
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: Bug para console.log en IE9

La manera más facil de evitar estos problemas es utilizar un wrapper, que además nos da la ventaja de que podemos silenciar cualquier log que haya quedado dando vueltas:

Código Javascript:
Ver original
  1. var log = function() {
  2.     if(MI_CONDICION_QUE_INDICA_QUE_ESTOY_EN_DESARROLLO && console && console.log) {
  3.         console.log.apply(console, arguments);
  4.     }
  5. };
__________________
blog | @aijoona

Etiquetas: bug, console.log, ie9
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:55.