2011-07-30 29 views
7

Trong trang web của tôi một khung nội tuyến ẩn được tải với một số JSON trong đó. JSON này được làm mới bởi một số hành động trên trang. Làm cách nào để truy cập vào JSON này trong khung nội tuyến từ trang web của tôi? đối với một số lý do không rõ nguyên nhân không rõ nguyên nhân, tôi buộc phải sử dụng jQuery 1.3.2. vì vậy không $.parseJSON()Làm cách nào để truy cập JSON từ khung nội tuyến có nguồn gốc từ cùng một tên miền?

+0

Khung nội tuyến trên cùng tên miền với trang bên ngoài của bạn phải không? – Paulpro

+0

Có, tiêu đề của câu hỏi cho biết điều này, "có nguồn gốc từ cùng một tên miền?" – Kumar

+0

ah, xin lỗi tôi đã bỏ lỡ điều đó :) Khung của bạn có thuộc tính id không? Nếu không, bạn có thể thêm nó vào nó (Điều đó sẽ giúp bạn dễ dàng chọn và nhanh hơn) – Paulpro

Trả lời

14

Tôi nghĩ rằng bạn có thể sử dụng:

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

Something dọc theo những đường sẽ làm việc ít nhất.

+1

Tôi buồn bã thông báo với bạn rằng tôi buộc phải sống trong thời kỳ đồ đá và sử dụng jQuery 1.3.2 – Kumar

+0

@kumar, bạn có thể sử dụng một thư viện khác như https://github.com/douglascrockford/JSON-js/blob/master không /json2.js để phân tích nó? Bạn luôn có tùy chọn sử dụng 'eval()' nhưng đó phải là phương sách cuối cùng. – Paulpro

+0

@kumar, hoặc bạn có thể sử dụng getJSON của jQuery(), tải nội dung của khung nội tuyến thông qua ajax thay vì trong một khung không? – Paulpro

8

Tất cả các trình duyệt hiện đại bao gồm một thư viện JSON phân tích cú pháp:

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

Nếu bạn cần hỗ trợ các trình duyệt cũ có một số thư viện để lựa chọn mà sẽ cung cấp cùng một giao diện. Những cái tốt hơn sẽ kiểm tra xem trình duyệt có đang cung cấp cài đặt gốc hay không và không ghi đè nó vì nó được ràng buộc là nhanh hơn.

cũng JSON.stringify()

+1

bài đăng được đánh giá thấp –

1

Xem Mã @Paulpro gửi:

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

không làm việc cho tôi.

Tôi đã thay đổi mã để:

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

Và bây giờ nó hoạt động.

Các vấn đề liên quan