Existe-t-il un consignateur de console pour IE? J'essaie de connecter plusieurs tests/assertions à la console, mais je ne peux pas le faire dans IE.
Vous pouvez accéder à la console de script IE8 en lançant les "Outils de développement" (F12). Cliquez sur l'onglet "Script", puis sur "Console" à 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 deviez d'abord lancer les outils de développement, puis actualiser votre page pour que cela fonctionne.
Depuis la version 8, Internet Explorer dispose de sa propre console, à l'instar des autres navigateurs. Cependant, si la console n'est pas activée, l'objet console
n'existe pas et un appel à console.log
lève une erreur.
Une autre option consiste à utiliser log4javascript (divulgation complète: écrit par moi), qui possède sa propre console de journalisation qui fonctionne dans tous les navigateurs classiques, y compris IE> = 5, plus un wrapper. pour la propre console du navigateur qui évite le problème d'un console
non défini.
si vous finissez par relâcher les commandes console.log()
en production, vous devez installer une sorte de solution pour IE - car console
n'est défini qu'en mode de débogage F12
.
if (typeof console == "undefined") {
this.console = { log: function (msg) { alert(msg); } };
}
[supprime évidemment l'alerte (msg); déclaration une fois que vous avez vérifié cela fonctionne]
Voir aussi 'console' est une erreur non définie pour Internet Explorer pour d'autres solutions et plus de détails
Il y a Firebug Lite qui donne beaucoup de fonctionnalités Firebug dans IE.
IE7 simple et inférieur qui préserve la numérotation des lignes pour les autres navigateurs:
/* console shim*/
(function () {
var f = function () {};
if (!window.console) {
window.console = {
log:f, info:f, warn:f, debug:f, error:f
};
}
}());
Dans son livre, "Secrets of Javascript Ninja", John Resig (créateur de jQuery) a un code très simple qui traite 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, " "));
}
}
Pour IE8 ou la prise en charge de la console limitée à console.log (pas de débogage, trace, ...), vous pouvez effectuer les opérations suivantes:
Si console OR console.log undefined: 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 (toute autre) n'est pas défini: redirigez toutes les fonctions de journalisation vers console.log, cela permet de conserver ces journaux!
window.console = { debug : window.console.log, ...};
Pas sûr du support d'assert dans les différentes versions de IE, mais toute suggestion est la bienvenue.
Pour les anciennes versions de IE (avant IE8), il n’est pas évident de voir le journal de la console dans IE Developer Toolbar, après des heures passées à rechercher et à essayer de nombreuses solutions différentes. la barre d’outils suivante est un excellent outil pour moi:
Le principal avantage de ceci est de fournir une console pour IE6 ou IE7, ainsi vous pouvez voir quelles sont les erreurs (dans le journal de la console).
Vous pouvez utiliser un wrapper inter-navigateurs: https://github.com/MichaelZelensky/log.js