Existe um logger de console para o IE? Estou tentando registrar um monte de testes / asserções no console, mas não posso fazer isso no IE.
Existe um logger de console para o IE? Estou tentando registrar um monte de testes / asserções no console, mas não posso fazer isso no IE.
Respostas:
Você pode acessar o console de scripts do IE8 iniciando as "Ferramentas do desenvolvedor" (F12). Clique na guia "Script" e clique em "Console" à direita.
No código JavaScript, você pode executar um dos seguintes procedimentos:
<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>
Além disso, você pode limpar o console chamando console.clear()
.
NOTA: Parece que você deve iniciar as Ferramentas do desenvolvedor primeiro e depois atualizar sua página para que isso funcione.
console.log()
será interrompida. Sempre proteja suas chamadas comwindow.console && console.log('stuff');
Desde a versão 8, o Internet Explorer possui seu próprio console, como outros navegadores. No entanto, se o console não estiver ativado, o console
objeto não existe e uma chamada para console.log
gerará um erro.
Outra opção é usar o log4javascript (divulgação completa: escrita por mim), que possui seu próprio console de registro que funciona em todos os navegadores convencionais, incluindo o IE> = 5, além de um invólucro para o próprio console do navegador que evita a emissão de um indefinido console
.
se você acabar liberando console.log()
comandos para a produção, precisará inserir algum tipo de correção para o IE - porque isso console
é definido apenas no F12
modo de depuração.
if (typeof console == "undefined") {
this.console = { log: function (msg) { alert(msg); } };
}
[obviamente remova o alerta (msg); declaração depois de verificar que funciona]
Consulte também 'console' é um erro indefinido para o Internet Explorer para outras soluções e mais detalhes
Existe o Firebug Lite, que oferece muitas funcionalidades do Firebug no IE.
Em seu livro "Segredos do Javascript Ninja", John Resig (criador do jQuery) possui um código muito simples que trata dos problemas do console.log em vários navegadores. Ele explica que gostaria de ter uma mensagem de log que funcione com todos os navegadores e aqui está como ele a codificou:
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 nesse snippet. :)
Para suporte ao IE8 ou console limitado ao console.log (sem depuração, rastreamento, ...), você pode fazer o seguinte:
Se console OU console.log indefinido: Crie funções fictícias para funções do console (rastreio, depuração, log, ...)
window.console = {
debug : function() {}, ...};
Caso contrário, se console.log estiver definido (IE8) E console.debug (qualquer outro) não estiver definido: redirecione todas as funções de log para console.log, isso permitirá manter esses logs!
window.console = {
debug : window.console.log, ...};
Não tenho certeza sobre o suporte de declaração em várias versões do IE, mas todas as sugestões são bem-vindas.
Você pode usar o wrapper para vários navegadores: https://github.com/MichaelZelensky/log.js
Para a versão mais antiga do IE (antes do IE8), não é fácil ver o console fazer login na Barra de Ferramentas do Desenvolvedor do IE, depois de passar horas pesquisando e tentando muitas soluções diferentes, finalmente, a barra de ferramentas a seguir é uma ótima ferramenta para mim:
A principal vantagem disso é fornecer um console para o IE6 ou IE7, para que você possa ver qual é o erro (no log do console)
Eu sempre fiz algo assim:
var log = (function () {
try {
return console.log;
}
catch (e) {
return function () {};
}
}());
e a partir desse ponto, sempre use log (...), não seja muito estiloso usando o console. [warn | error | e assim por diante], apenas mantenha-o simples. Normalmente, prefiro uma solução simples do que bibliotecas externas sofisticadas, geralmente compensa.
maneira simples de evitar problemas com o IE (com console.log inexistente)
console.log()
só funciona quando a ferramenta de desenvolvimento do IE está aberta (sim, o IE é ruim). veja stackoverflow.com/questions/7742781/…