2011-07-30 73 views
7

在我的網頁中,隱藏的iframe中加載了一些JSON。此JSON通過頁面上的某些操作進行刷新。我如何從我的網頁訪問iframe中的這個JSON?對於一些未知的奧術無法解釋的原因,我不得不使用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(),通過ajax而不是在框架中加載iframe的內容? – Paulpro

8

所有現代瀏覽器包括一個JSON解析庫:

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

如果您需要支持舊的瀏覽器有幾個庫可供選擇,將提供相同的接口。更好的人將檢查瀏覽器是否提供本地實現並且不覆蓋它,因爲它肯定會更快。

JSON.stringify()

+1

被低估的帖子 –

1

見@Paulpro發佈的代碼:

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

不會爲我工作。

我改變了代碼:

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

而現在它的工作原理。

相關問題