2011-07-30 18 views
7

私のWebページでは、隠れたiframeにいくつかのJSONが読み込まれています。このJSONは、ページ上のいくつかのアクションによってリフレッシュされます。ウェブページからこのJSONにiframeでアクセスするにはどうすればよいですか?私がjQuery 1.3.2を使用することを余儀なくされている理由についてはわかりません。そう何$.parseJSON()同じドメインからのiframeからJSONにアクセスするにはどうすればよいですか?

+0

iframeは外側のページと同じドメインにありますか? – Paulpro

+0

はい、この質問のタイトルには「同じドメインからのものですか? – Kumar

+0

ああ、私はそれを逃した申し訳ありません:)あなたのフレームはid属性を持っていますか? – Paulpro

答えて

14

私はあなたが使うことができると思いません:これらの線に沿って

var json = $.parseJSON($("#hiddeniframe").contents().text()); 

何かが少なくとも動作します。

+1

私は悲しいことに、石器時代に住んでいて、jQuery 1.3.2 – Kumar

+0

@kumarを使用することを余儀なくされていることをお知らせします。https://github.com/douglascrockford/JSON-js/blob/masterのような別のライブラリを使用できますか? /json2.jsそれを解析するには?あなたはいつも 'eval()'を使うオプションを持っていますが、それは最後の手段でなければなりません。 – Paulpro

+0

@kumar、またはjQueryのgetJSON()を使用して、iframeの内容をフレームではなくajaxを通して読み込むことができますか? – Paulpro

8

すべての近代的なブラウザでは、JSONの構文解析ライブラリが含まれています

var data = JSON.parse($("#hiddeniframe").contents().text()); 

あなたは古いブラウザをサポートする必要がある場合はその中から選択するには、いくつかのライブラリがありますが、同じインタフェースを提供します。より優れたブラウザは、ブラウザがネイティブの実装を提供しているかどうかを確認し、それを上書きしないようにします。

var json = $.parseJSON($("#hiddeniframe").contents().text()); 

が私のために動作しません:

JSON.stringify()

+1

過小評価された投稿 –

1

@Paulproが掲載コードを参照してください。

私はにコードを変更:

var json = $.parseJSON($("#hiddeniframe").contents().find("*").first().text()); 

そして今、それが動作します。

関連する問題