¿Existe un registrador de consola para IE? Estoy tratando de registrar un montón de pruebas / afirmaciones en la consola, pero no puedo hacer esto en IE.
¿Existe un registrador de consola para IE? Estoy tratando de registrar un montón de pruebas / afirmaciones en la consola, pero no puedo hacer esto en IE.
Respuestas:
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.
console.log()
se interrumpirá. Siempre proteja sus llamadas conwindow.console && console.log('stuff');
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 console
objeto no existe y una llamada a console.log
arrojará 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
.
Si termina lanzando console.log()
comandos a producción, debe realizar algún tipo de corrección para IE, porque console
solo se define cuando está en F12
modo 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
Hay Firebug Lite que ofrece muchas funciones de Firebug en IE.
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, " "));
}
}
}
falta en ese fragmento. :)
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.
Puede utilizar el contenedor de varios navegadores: https://github.com/MichaelZelensky/log.js
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)
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)
console.log()
solo funciona cuando la herramienta de desarrollo de IE está abierta (sí, IE es una mierda). ver stackoverflow.com/questions/7742781/…