web-dev-qa-db-fra.com

Comment vider des vars JavaScript dans IE8?

J'ai un objet à examiner dans IE8 . J'ai essayé les outils de développement et console.log, leur équivalent Firebug . Cependant, lorsque je produis l'objet dans le journal:

console.log("Element: ", element);
console.log(element);

Je ne reçois que la ficelle

LOG: Element: [object Object]

au lieu d'un vidage cliquable et examinable.

Est-il possible de vider un objet dans le journal et d’en examiner les membres, comme dans Firebug?

Je ne peux pas utiliser une fonction dump () faite à la maison, car l'élément que je souhaite examiner est tellement énorme que le navigateur va se bloquer sur moi. 

70
Pekka 웃

Voici une technique que j'ai trouvée utile:

  • Ouvrez la barre d’outils du développeur (appuyez sur F12)
  • Aller sur l'onglet "Script"
  • Cliquez sur le bouton "Démarrer le débogage"
  • Ensuite, tapez "debugger" dans la console et appuyez sur Entrée. Cela devrait déclencher un point d'arrêt.
  • Aller au sous-onglet "Regarder"
  • Cliquez sur la ligne "Cliquez pour ajouter ..." et entrez une variable que vous souhaitez examiner. Notez que la variable doit être disponible globalement.
  • À ce stade, vous devriez pouvoir examiner votre variable avec une interface utilisateur arborescente.
  • Une fois le débogage terminé, cliquez sur le bouton Continuer (ou appuyez sur F5)
101
Xavi

Un peu hors sujet (car cela ne fonctionnera pas pour les éléments DOM) mais j'ai trouvé pratique d'utiliser JSON.stringify (object ) pour obtenir une chaîne JSON pour l'objet qui soit très lisible.

92
Andy

@Chris a commenté @ Andy avec la solution simple: utilisez console.dir(myObj) pour obtenir tous les détails imprimés dans la console dans IE. Merci Chris!

13
René

Si vous avez affaire à du code malveillant et que console.log n'est pas disponible, essayez ceci dans la console:

out = []; for (i in your_object) { out.Push(i) } out.join("\n")
5
Cees Timmerman

Une suggestion consiste à utiliser Firebug-Lite : Il enveloppe la console obj et vous pouvez voir le résultat dans IE comme dans la plupart des consoles Firebug . J'espère que cela vous aidera.

3
winladen

Ajouter cette balise dans votre page:

<script type="text/javascript" src="https://getfirebug.com/firebug-lite-debug.js"></script>

Et les choses vont marcher.

Cela fonctionne sur mon système.

Remarque: essayez cette solution.

1
Sharad

Une version imagée de l'excellente réponse de Xavi:

 enter image description here

1
Frison Alexander

Dump dans un élément HMTL existant

J'ai remarqué IE 11 supprime les lignes de la console après 1027 caractères: -/ Quand j'avais un gros objet à vider (12 000 caractères), je l'ai vidé dans un DIVARER TextArea-Element existant, de où je pourrais copier le contenu.

var str = JSON.stringify(myObject);
$('#existing-element').text(str); // jQuery or
document.querySelector("#existing-element").innerHTML = str; // native JavaScript
0
dsuess

Un peu trapu mais cela fonctionne pour les objets DOM:

 console.log( testNode.outerHTML.replace(testNode.innerHTML,"") ); 
0
brannigan

Je sais que c'est une question VRAIMENT ancienne, mais je cherchais une réponse à cette question tout à l'heure. S'il n'est pas absolument nécessaire d'utiliser la console IE (ce qui n'est pas très bon, IMO), vous pouvez envisager d'utiliser Firebug Lite ( http://getfirebug.com/firebuglite ). Ce n'est pas une solution parfaite, et vous ne voudrez peut-être pas envoyer ce script dans votre environnement de production. Il n'est pas aussi complet que Firebug, mais il est plutôt bon si vous avez trop à faire avec un navigateur bas de gamme comme C'EST À DIRE.

0
Carnix