javascript comandos - ¿Cómo puedo usar el registro de la consola en Internet Explorer?




browser pagina (9)

¿Hay un registrador de consola para IE? Estoy intentando registrar un montón de pruebas / afirmaciones en la consola, pero no puedo hacer esto en IE.


Answers

Hay Firebug Lite que proporciona mucha funcionalidad Firebug en IE.


Para la versión anterior de IE (antes de IE8), no es sencillo ver el registro de la consola en IE Developer Toolbar, después de pasar horas investigando y probando muchas soluciones diferentes, finalmente, la siguiente barra de herramientas es una gran herramienta para mí:

La principal ventaja de esto es proporcionar una consola para IE6 o IE7, para que pueda ver cuál es el error (en el registro de la consola)

  • Nota:
  • Es gratis
  • captura de pantalla de la barra de herramientas


Desde la versión 8, Internet Explorer tiene su propia consola, como otros navegadores. Sin embargo, si la consola no está habilitada, el objeto de la console no existe y una llamada a console.log emitirá un error.

Otra opción es usar log4javascript (divulgación completa: escrito por mí), que tiene su propia consola de registro que funciona en todos los navegadores mainstream, incluido IE> = 5, más un contenedor para la propia consola del navegador que evita el problema de una console indefinida .


IE7 simple e inferior shim que preserva la numeración de líneas para otros navegadores:

/* console shim*/
(function () {
    var f = function () {};
    if (!window.console) {
        window.console = {
            log:f, info:f, warn:f, debug:f, error:f
        };
    }
}());


Para IE8 o soporte de consola limitado a console.log (sin depuración, seguimiento, ...) puede hacer lo siguiente:

  • Si console OR console.log undefined: crea funciones ficticias para funciones de consola (trace, debug, log, ...)

    window.console = { debug : function() {}, ...};

  • De lo contrario, si console.log está definido (IE8) Y console.debug (cualquier otro) no está definido: redirija todas las funciones de registro a console.log, ¡esto permite mantener esos registros!

    window.console = { debug : window.console.log, ...};

No estoy seguro de la compatibilidad con assert en varias versiones de IE, pero cualquier sugerencia es bienvenida.


Extremadamente importante si usa console.log () en producción:

Si termina liberando los comandos de console.log() a producción, necesita poner algún tipo de solución para IE, porque la console solo está definida cuando está en modo de depuración F12 .

if (typeof console == "undefined") {
    this.console = { log: function (msg) { alert(msg); } };
}

[obviamente eliminar la alerta (msg); declaración una vez que haya verificado que funciona]

Ver también 'consola' es un error indefinido para Internet Explorer para otras soluciones y más detalles


En su libro, "Secretos de Javascript Ninja", John Resig (creador de jQuery) tiene un código realmente simple que manejará los problemas de console.log entre navegadores. Él explica que le gustaría tener un mensaje de registro que funcione con todos los navegadores y así es como lo codificó:

function log() {
  try {
    console.log.apply(console, arguments);
  } catch(e) {
  try {
    opera.postError.apply(opera, arguments);
  }
  catch(e) {
    alert(Array.prototype.join.call( arguments, " "));
  }
}

Dado que la pregunta se refiere a un solo elemento, este código podría ser más adecuado:

// Checks css for display:[none|block], ignores visibility:[true|false]
$(element).is(":visible"); 

// The same works with hidden
$(element).is(":hidden"); 

Igual que la sugerencia de twernt , pero aplicada a un solo elemento; y coincide con el algoritmo recomendado en las preguntas frecuentes de jQuery







javascript internet-explorer internet-explorer-8 console firebug