¿Cómo puedo utilizar el inicio de sesión de la consola en Internet Explorer?

Respuestas:

147

Puede acceder a la consola de secuencias de comandos de IE8 iniciando las "Herramientas de desarrollo" (F12). Haga clic en la pestaña "Script", luego haga clic en "Consola" a la derecha.

Desde su código JavaScript, puede realizar cualquiera de las siguientes acciones:

<script type="text/javascript">
    console.log('some msg');
    console.info('information');
    console.warn('some warning');
    console.error('some error');
    console.assert(false, 'YOU FAIL');
</script>

Además, puede borrar la consola llamando console.clear().

NOTA: Parece que primero debe iniciar las herramientas de desarrollo y luego actualizar su página para que esto funcione.

Craig
fuente
Esto es solo para IE8 +, pero es una excelente consola. Básicamente es una réplica de Firebug, a la que le faltan algunas características y otras incorporadas. Busque en MSDN.
ken
2
Ah, a pesar de que no llega a Firebug, todavía tiene lo suficiente de lo que necesito. ¡Gracias!
Ground5hark
1
Enlace a MSDN
Casebash
73
Tenga en cuenta que en IE, a diferencia de Firefox, si las herramientas de desarrollo no están activas, window.console no está definido y la llamada console.log()se interrumpirá. Siempre proteja sus llamadas conwindow.console && console.log('stuff');
Guss
1
En caso de que alguien aún no pueda encontrarlo, no haga lo que hice e intente escribir su secuencia de comandos en la parte superior de la ventana: el área de entrada es en realidad un área / barra de texto en la parte inferior de la ventana de la Consola de herramientas del desarrollador .
starmandeluxe
24

Desde la versión 8, Internet Explorer tiene su propia consola, al igual que otros navegadores. Sin embargo, si la consola no está habilitada, el consoleobjeto no existe y una llamada a console.logarrojará 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 principales, incluido IE> = 5, además de un contenedor para la propia consola del navegador que evita el problema de indefinido console.

Tim Down
fuente
Hah .. Hace un par de meses escribí algo parecido. ¡Buen trabajo en eso!
tftd
@Tim Down hay una solución para esto stackoverflow.com/a/13817235/3057246
Vinod Srivastav
14

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

Si termina lanzando console.log()comandos a producción, debe realizar algún tipo de corrección para IE, porque consolesolo se define cuando está en F12modo de depuración.

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

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

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

Simon_Weaver
fuente
5

Calce simple de IE7 e inferior que conserva 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
        };
    }
}());
dbrin
fuente
3

En su libro, "Secrets of Javascript Ninja", John Resig (creador de jQuery) tiene un código realmente simple que manejará los problemas de console.log entre navegadores. 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, " "));
  }
}
ambodi
fuente
Es John Resig; escribiste "Renunciar", LOL
rvighne
1
Hay una }falta en ese fragmento. :)
Cerca del
2

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

  • Si console O console.log no está definido: crea funciones ficticias para las funciones de la consola (rastreo, depuración, registro, ...)

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

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

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

No estoy seguro sobre el soporte de assert en varias versiones de IE, pero cualquier sugerencia es bienvenida.

Christophe Roussy
fuente
0

Para la versión anterior de IE (antes de IE8), no es sencillo ver el registro de la consola en la barra de herramientas del desarrollador de IE, 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, por lo que puede ver cuál es el error (en el registro de la consola)

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

ingrese la descripción de la imagen aquí

super1ha1
fuente
0

Siempre he estado haciendo algo como esto:

var log = (function () {
  try {
    return console.log;
  }
  catch (e) {
    return function () {};
  }
}());

y desde ese punto, use siempre log (...), no sea demasiado sofisticado usando la consola. [advertencia | error | y así sucesivamente], simplemente manténgalo simple. Por lo general, prefiero una solución simple que las bibliotecas externas elegantes, generalmente vale la pena.

forma sencilla de evitar problemas con IE (con console.log no existente)

stopsopa
fuente