2011-11-30 11 views
34

ottengo il seguente errore in IE 9 SCRIPT5009: 'JSON' is undefined solo in modalità compatibilità. la linea che causa l'erroreSCRIPT5009: 'JSON' non è definito

JSON.stringify(togObj.Answers) 

L'errore non si verifica in IE (modalità non-compatibilità), Chrome o Firefox. Qualche idea su cosa sta succedendo qui?

+3

Sembra che l'oggetto 'JSON' non sia definito. Dai un'occhiata a http://json.org/js.html per aggiungere il supporto JSON. –

+0

Grazie a tutti, è stato facile !!! –

risposta

23

JSON è not available in compatibility mode IE:

Non supportato nei seguenti modi: documento stranezze, Internet Explorer 6 standard, Internet Explorer 7 standard.

Dal momento che non si dovrebbero usare (o peggio, il reiling su) le modalità di compatibilità, in primo luogo, si dovrebbe passare a Internet Explorer in modalità standard aggiungendo un doctype valido.

+1

accidentalmente ho acceso la modalità di compatibilità e ho ricevuto l'errore. +1 per guidarmi. – vbocan

+0

Si noti che gli iframe IE "ereditano" la modalità documento del frame principale. Quindi, se potrebbe essere necessario il lib di JSON ben oltre IE7, se potresti essere incorporato in pagine che non controlli. – cmc

-1

Se si utilizza libreria jQuery alla tua pagina, che è possibile utilizzare $.parseJSON.

+0

non funziona, per jQuery usa JSON.parse –

+0

@FilipCornelissen: http://api.jquery.com/jQuery.parseJSON/ Richiede la versione 1.4.1 jquery. Inoltre, verifica che il tuo json sia corretto. Prova a trasmettere una stringa json demo a questa funzione e verifica. – iMatoria

+0

dalla stessa pagina: "Laddove il browser fornisce un'implementazione nativa di JSON.parse, jQuery lo utilizza per analizzare la stringa." e (semplificato) da http://code.jquery.com/jquery-latest.js: 'parseJSON: function (data) {return window.JSON.parse (data); }'. Conclusione, non funziona in modo nativo in IE8 o inferiore. –

0

È necessario includere json2.js

vedere json2 inclusion

per maggiori dettagli. Ci sono casi in cui dobbiamo affrontare casi in cui i clienti utilizzano gli standard IE7. Quindi il nostro codice doveva soddisfare anche questi casi. Il nostro sito di vendita al dettaglio è accessibile da centinaia di clienti che utilizzano gli standard IE7. Compreso json2 risolve questo problema

2

ho fatto LOCALE Jquery aggiunto NET 2.0 testing di codice, funziona benissimo senza alcun problema. Ma dopo la migrazione del codice al server IIS v6, quindi l'accesso dallo stesso browser IE, il problema appare "JSON" non definito. Dopo aver letto questo consiglio, scaricare il file json2.js e aggiungere sotto al codice sorgente.

<script type="text/javascript" src="json2.js"></script> 

TUTTO IL FUNZIONAMENTO Fine.

bene grazie.