2012-04-17 4 views
15

Ho una pagina grafica che mostra grafica SVG. Sto usando la struttura grafica di Raffaello. La pagina viene visualizzata correttamente in Firefox, anche se gli strumenti di sviluppo F12 sono impostati su "on" in IE9 funziona correttamente. La mappa mostra dati parziali (è un diagramma di collegamento nodo e mostra solo un nodo figlio su 12 nodi) in IE9 se la modalità sviluppatore F12 è disattivata e l'applicazione viene avviata con la cache del browser cancellata (simulando un utente generale).La console è un errore non definito in IE9

Aggiornamento: ho attivato il debugger e mi mostra l'errore "la console non è definita". Quindi penso che non sia un problema di rendering grafico, e anche io non sto usando la console esplicitamente, forse la mappa mentale js lo sta usando internamente, ma come liberarsi di questo problema?

Aggiornamento: ho trovato il problema e ha commentato le voci console.log dai file js.

Grazie.

risposta

39

Probabilmente il tuo codice o il codice che stai chiamando utilizza console.log o qualcosa del genere.

È possibile aggiungere questo codice nell'ambito globale per creare un wrapper fittizio per IE (o qualsiasi browser che non lo supporta). Basta inserire il seguente codice da qualche parte prima di chiamare altre librerie:

if(!(window.console && console.log)) { 
    console = { 
    log: function(){}, 
    debug: function(){}, 
    info: function(){}, 
    warn: function(){}, 
    error: function(){} 
    }; 
} 
2

Avete una chiamata console.log() o console.error() nel vostro codice?

+0

apparentemente l'errore della console viene visualizzato, capendo dove viene chiamato. –

8

Il problema è che il codice js chiama qualche volta un metodo di console, per esempio 'console.log', ma il vostro browser non ha console (o ha chiuso);

Per risolvere questo problema, aggiungere questo (una volta) prima di includere qualsiasi dei vostri script:

//Ensures there will be no 'console is undefined' errors 
window.console = window.console || (function(){ 
    var c = {}; c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile = c.clear = c.exception = c.trace = c.assert = function(){}; 
    return c; 
})(); 

Questo creerà una console 'pseudo' solo se non esiste, in modo che 'console non è definito' l'errore andrà via.

Spero che questo aiuti. Cheers