2011-11-30 60 views
34

IE 9で次のようなエラーが発生しますSCRIPT5009: 'JSON' is undefined互換モードでのみ表示されます。このエラーの原因となった行は、クロムまたはFirefoxSCRIPT5009: 'JSON'が定義されていません

JSON.stringify(togObj.Answers) 

エラーがすなわち(非互換モード)で発生していないです。 ここで何が起こっていると思いますか?

+3

'JSON'オブジェクトは定義されていないようです。 JSONサポートを追加するためのhttp://json.org/js.htmlをご覧ください。 –

+0

ありがとう、それは簡単でした! –

答えて

23

JSONはnot available in compatibility mode IE次のとおりです。癖は、Internet Explorer 6つの標準、Internet Explorer 7つの標準規格:

次のドキュメントモードではサポートされません。

最初に互換モードを使用してはならないので、有効なdoctypeを追加してIEを標準モードに切り替える必要があります。

+1

私は誤って互換モードをオンにしてエラーを受けました。私を導く+1。 – vbocan

+0

IEのiframeは、親フレームのドキュメントモードを「継承」することに注意してください。 IE7を超えてJSONライブラリが必要な場合は、ページに埋め込まれる可能性がある場合は制御できません。 – cmc

-1

あなたのページでjQueryライブラリを使用している場合は、$.parseJSONを使用することができます。

+0

は機能しません。jQueryはJSONを使用しているためです。pars –

+0

@FilipCornelissen:http://api.jquery.com/jQuery.parseJSON/ 1.4.1 jqueryバージョンが必要です。また、jsonが正しいことを確認してください。この関数にデモjson文字列を渡して検証してみてください。同じページの – iMatoria

+0

: "ブラウザでJSON.parseのネイティブ実装が提供されている場合、jQueryはこれを使用して文字列を解析します。 http://code.jquery.com/jquery-latest.jsから(簡略化された): 'parseJSON:function(data){return window.JSON.parse(data);} } '。結論として、IE8以下ではネイティブに動作しません。 –

0

あなたにjson2.jsを含める必要が

は詳細についてはjson2 inclusion

を参照してください。クライアントがIE7標準を使用している場合に対処する必要がある場合があります。だから私たちのコードはそのような場合にも対応しなければなりませんでした。小売ウェブサイトである私たちは、IE7標準を使用する何百ものクライアントからアクセスされています。 json2を含むとこの問題は解決されます

2

私はLOCAL Jqueryを追加しました.NEt 2.0コードテストを追加しました。問題なく正常に動作します。 しかし、コードをIIS v6サーバーに移行した後、同じIEブラウザからアクセスすると、問題は "JSON"が未定義と表示されます。 この勧告を読んだら、json2.jsファイルをダウンロードし、以下をソースコードに追加してください。

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

EVERYTHING WORKING Fine。

ありがとう。

関連する問題