Existe-t-il un enregistreur de console pour IE? J'essaye d'enregistrer un tas de tests / assertions sur la console mais je ne peux pas le faire dans IE.
Existe-t-il un enregistreur de console pour IE? J'essaye d'enregistrer un tas de tests / assertions sur la console mais je ne peux pas le faire dans IE.
Réponses:
Vous pouvez accéder à la console de script IE8 en lançant les "Developer Tools" (F12). Cliquez sur l'onglet "Script", puis sur "Console" sur la droite.
À partir de votre code JavaScript, vous pouvez effectuer l'une des opérations suivantes:
<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>
Vous pouvez également effacer la console en appelant console.clear()
.
REMARQUE: il semble que vous devez d'abord lancer les outils de développement, puis actualiser votre page pour que cela fonctionne.
console.log()
sera interrompu. Protégez toujours vos appels avecwindow.console && console.log('stuff');
Depuis la version 8, Internet Explorer possède sa propre console, comme les autres navigateurs. Cependant, si la console n'est pas activée, l' console
objet n'existe pas et un appel à console.log
générera une erreur.
Une autre option consiste à utiliser log4javascript (divulgation complète: écrite par moi), qui a sa propre console de journalisation qui fonctionne dans tous les navigateurs traditionnels, y compris IE> = 5, plus un wrapper pour la propre console du navigateur qui évite le problème d'un indéfini console
.
si vous finissez par publier des console.log()
commandes en production, vous devez mettre une sorte de correctif pour IE - car il console
n'est défini qu'en F12
mode débogage.
if (typeof console == "undefined") {
this.console = { log: function (msg) { alert(msg); } };
}
[supprimez évidemment l'alerte (msg); déclaration une fois que vous avez vérifié que cela fonctionne]
Voir aussi «console» est une erreur non définie pour Internet Explorer pour d'autres solutions et plus de détails
Il existe Firebug Lite qui offre de nombreuses fonctionnalités Firebug dans IE.
Dans son livre, "Secrets of Javascript Ninja", John Resig (créateur de jQuery) a un code très simple qui gérera les problèmes de console.log entre navigateurs. Il explique qu'il aimerait avoir un message de journal qui fonctionne avec tous les navigateurs et voici comment il l'a codé:
function log() {
try {
console.log.apply(console, arguments);
} catch(e) {
try {
opera.postError.apply(opera, arguments);
}
catch(e) {
alert(Array.prototype.join.call( arguments, " "));
}
}
}
manque un extrait dans cet extrait. :)
Pour le support IE8 ou console limité à console.log (pas de débogage, trace, ...), vous pouvez faire ce qui suit:
Si console OU console.log non défini: Créez des fonctions factices pour les fonctions de la console (trace, débogage, journal, ...)
window.console = {
debug : function() {}, ...};
Sinon si console.log est défini (IE8) ET console.debug (tout autre) n'est pas défini: redirigez toutes les fonctions de journalisation vers console.log, cela permet de conserver ces logs!
window.console = {
debug : window.console.log, ...};
Je ne suis pas sûr de la prise en charge d'assert dans diverses versions d'IE, mais toutes les suggestions sont les bienvenues.
Vous pouvez utiliser un wrapper multi-navigateurs: https://github.com/MichaelZelensky/log.js
Pour les anciennes versions d'IE (avant IE8), il n'est pas simple de voir le journal de la console dans la barre d'outils des développeurs IE, après avoir passé des heures à rechercher et à essayer de nombreuses solutions différentes, enfin, la barre d'outils suivante est un excellent outil pour moi:
Le principal avantage de cela est de fournir une console pour IE6 ou IE7, afin que vous puissiez voir quelle est l'erreur (dans le journal de la console)
J'ai toujours fait quelque chose comme ça:
var log = (function () {
try {
return console.log;
}
catch (e) {
return function () {};
}
}());
et à partir de là, utilisez toujours log (...), ne soyez pas trop compliqué en utilisant la console. [avertir | erreur | et ainsi de suite], restez simple. Je préfère généralement une solution simple aux bibliothèques externes sophistiquées, cela porte généralement ses fruits.
moyen simple d'éviter les problèmes avec IE (avec console.log non existant)
console.log()
ne fonctionne que lorsque l'outil de développement d'IE est ouvert (oui, IE est merdique). voir stackoverflow.com/questions/7742781/…