70

Ho un oggetto che devo esaminare in IE8. Ho provato gli strumenti di sviluppo e console.log, il loro equivalente Firebug. Tuttavia, quando l'uscita io l'oggetto nel registro:Come posso scaricare JavaScript vars in IE8?

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

ho solo la stringa

LOG: Element: [object Object] 

invece di un cliccabile, discarica ispezionabile.

È possibile scaricare un oggetto nel registro ed esaminarne i membri, come in Firebug?

Non riesco a utilizzare una funzione di dump casalingo() perché l'elemento che voglio esaminare è così grande che il browser si bloccherà su di me.

+12

Purtroppo IE9 fa lo stesso. Maledizione, Microsoft! – Walf

risposta

101

Ecco una tecnica che ho trovato utile:

  • Aprire il Developer Tool Bar (colpo F12)
  • Vai alla scheda "script"
  • Fare clic su "Start Debugging" pulsante
  • Avanti, digitare "debugger" nella console e premere invio. Questo dovrebbe innescare un punto di rottura.
  • Vai alla sottoscheda "Orologio"
  • Fai clic sulla riga che dice "Fai clic per aggiungere ..." e inserisci una variabile che desideri esaminare. Si noti che la variabile deve essere disponibile globalmente.
  • A questo punto si dovrebbe essere in grado di esaminare la variabile con albero-come interfaccia utente
  • Una volta che hai finito il debug fare clic sul pulsante Continua (o premere F5)
+1

Non ho il tempo di approfondire questo aspetto adesso, ma sono abbastanza sicuro che mi aiuterà. Grazie per le indicazioni passo passo. –

+41

Leggere questo sembra che sto cercando un codice cheat su GameFAQs ... –

+16

Scommetto che gli sviluppatori Microsoft lo odiano. – alejandro

-1

console.log (element.toString()) potrebbe essere tuo amico qui ...

+0

Buona idea, ma purtroppo, stessa uscita ... –

+0

No, questo non dovrebbe funzionare sicuramente –

+4

Non penso che questo merita un downvote - funziona perfettamente bene, proprio non nel modo che ho bisogno. I downvotes devono essere riservati per esplicitamente * errate * risposte. +1 per uniformarlo. –

92

Un po 'fuori tema (come ha vinto 'lavoro per elementi DOM) ma ho trovato utile usare il JSON.stringify(object per ottenere una stringa JSON per l'oggetto che è abbastanza leggibile.

+4

Questa soluzione è una risposta migliore alla domanda. A proposito, se il tuo IE non supporta l'oggetto JSON, puoi usare http://www.JSON.org/json2.js che è un bel fallback – daitangio

+0

solo per notare, se provi ad usare questa tecnica per variabili molto grandi come per esempio gli oggetti jquery, probabilmente incontrerai "Error: Out of memory". –

+51

** PROTIP **: usa 'JSON.stringify (obj, null," \ t ")' per rendere l'output di 'stringify' più leggibile. – Xavi

3

Un suggerimento è quello di utilizzare Firebug-Lite: Si avvolge obj console e si può vedere il risultato in IE come nella maggior parte della console firebug. Spero che questo aiuto.

+0

1) come installare e utilizzare firebug-lite su IE e altri browser: http://www.makeuseof.com/tag/install-firebug -per-browsers-other-than-firefox 2) video su come aggirare il problema del bookmarking per il bookmarklet firebug-lite in IE: http://www.youtube.com/watch?v = vLJ2RaNZ22E – GuruM

+0

Installato firebug-lite, ma 'console non è definita' è il messaggio di errore che ottengo. Ho provato a cercare su google le risposte ma ancora senza fortuna. Se qualcuno sa come sbarazzarsi di questo problema, per favore rispondi qui. – GuruM

5

Se hai a che fare con il codice di brutto e console.log non è disponibile, provare questo nella console:

out = []; for (i in your_object) { out.push(i) } out.join("\n") 
13

@ Chris ha commentato @ risposta di Andy con la semplice soluzione: utilizzare console.dir(myObj) per ottenere tutte le dettagli stampati nella console in IE. Grazie Chris!

+0

Sì, va bene ^^ Stupido, non ho postato una risposta. Pensavo ci fossero abbastanza bravi qui. – Chris

+12

console.dir non è disponibile in IE8 :( – erotte

+2

Inoltre .. console.dir non esegue la serializzazione in profondità ... JSON.stringify fa –

0

So che questa è davvero una domanda vecchia, ma stavo cercando una risposta a questo proprio ora. Se non è un requisito assoluto per utilizzare la console IE (che non è molto buona, IMO), allora potresti prendere in considerazione l'utilizzo di Firebug Lite (http://getfirebug.com/firebuglite). Non è una soluzione perfetta e potresti non voler spingere quel copione nel tuo ambiente di produzione, e non è così pieno di funzionalità come Firebug, ma è abbastanza buono in un colpo solo quando devi fare un giro con un browser di fascia bassa come IE.

+3

se IE non era un requisito, quindi non ci sarebbero problemi. Gli strumenti dev di chrome/firefox integrati lo fanno bene. – Joe

0

Un po 'grosso, ma funziona per gli oggetti DOM:

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

Aggiungi questo tag nella tua pagina:

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

E le cose funzioneranno.

Funziona sul mio sistema.

Nota: provare questa soluzione.

0

dump in una esistente HTML-Element

ho notato IE 11 è spogliarsi linee della console dopo 1027 caratteri: -/ Quando ho avuto un grande oggetto per eseguire il dump (12.000 caratteri) ho buttato in un DIV- oder TextArea-Element esistente, da cui potrei copiare il contenuto.

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

Una versione pittorica della risposta eccellente di Xavi:

enter image description here

Problemi correlati