Pregunta

Estoy depurando un problema de JavaScript específico de Safari, y no puedo hacer que console.log salga al registro de errores. Esta es una característica documentada de Safari (estoy usando la versión 4.0.3). Sin embargo, estas declaraciones en mi código parecen ignorarse. ¿Por qué?

¿Fue útil?

Solución

Gracias a Breton y SeanJA por sus sugerencias de probar directamente en la consola y hacer un archivo de ejemplo. Después de hacer esto, me di cuenta de que console.log estaba, de hecho, trabajando en un entorno aislado. Esto me hizo darme cuenta de que debe ser algo particular para mi entorno de desarrollo. Al comprobarlo, descubrí que se estaba cargando algo de JavaScript desde el principio, diseñado para definir el objeto de la consola para navegadores no habilitados para Firebug.

if (!("console" in window) || !("firebug" in console))
 {
     var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
     "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

     window.console = {};
     for (var i = 0; i < names.length; ++i)
         window.console[names[i]] = function() {}
 }

Esto aparentemente se escribió antes de que Safari implementara un objeto de consola para su ventana de error.

He eliminado eso y ahora todo funciona bien. Gracias chicos.

Otros consejos

¿Está utilizando la compilación de Mac o Windows?

En la compilación de Windows no puedo usar la mayoría de las cosas en el " Desarrollar " hombres, ninguna de las opciones de JavaScript funciona para mí. Solo puedo usar

  • Abrir página con
  • Agente de usuario
  • Mostrar editor de snipper
  • Desactivar *

En Firefox, sé que ahora necesitas tener la consola firebug abierta para que las funciones de la consola. * funcionen. ¿Quizás es lo mismo?

Puede intentar activar el modo de depuración. No tengo idea si esto hará alguna diferencia, pero puede intentarlo: Instrucciones para activar el modo de depuración

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top