2011-11-30 22 views
34

Tôi gặp lỗi sau trong IE 9 SCRIPT5009: 'JSON' is undefined chỉ khi ở chế độ tương thích. dòng gây ra lỗi này làSCRIPT5009: 'JSON' không được xác định

JSON.stringify(togObj.Answers) 

Lỗi này không xảy ra tức là (chế độ không tương thích), Chrome hoặc Firefox. Bất kỳ ý tưởng gì đang xảy ra ở đây?

+3

Dường như đối tượng 'JSON' không được xác định. Hãy xem http://json.org/js.html để thêm hỗ trợ JSON. –

+0

Cảm ơn tất cả, điều đó thật dễ dàng !!! –

Trả lời

23

JSON là not available in compatibility mode IE:

Không được hỗ trợ trong chế độ tài liệu sau đây: Quirks, Internet Explorer 6 tiêu chuẩn, tiêu chuẩn trình duyệt Internet Explorer 7.

Vì bạn không nên sử dụng (hoặc tệ hơn, bật lại) chế độ tương thích ngay từ đầu, bạn nên chuyển IE sang chế độ tiêu chuẩn bằng cách thêm loại tài liệu hợp lệ.

+1

Tôi vô tình bật chế độ tương thích và gặp lỗi. 1 để hướng dẫn tôi. – vbocan

+0

Lưu ý rằng iframe IE "kế thừa" chế độ tài liệu của khung gốc. Vì vậy, nếu có thể cần thư viện JSON tốt hơn IE7 nếu bạn có thể được nhúng vào các trang bạn không kiểm soát. – cmc

-1

Nếu bạn đang sử dụng thư viện jQuery tại trang của mình, bạn có thể sử dụng $.parseJSON.

+0

không hoạt động, vì jQuery sử dụng JSON.parse –

+0

@FilipCornelissen: http://api.jquery.com/jQuery.parseJSON/ Nó yêu cầu phiên bản jquery 1.4.1. Ngoài ra, xác minh rằng json của bạn là chính xác. Hãy thử chuyển một chuỗi json trình diễn tới hàm này và xác minh. – iMatoria

+0

từ cùng một trang: "Trong đó trình duyệt cung cấp việc triển khai JSON.parse gốc, jQuery sử dụng nó để phân tích cú pháp chuỗi." và (được đơn giản hóa) từ http://code.jquery.com/jquery-latest.js: 'parseJSON: function (data) {return window.JSON.parse (dữ liệu); } '. Kết luận, không hoạt động nguyên bản trong IE8 hoặc thấp hơn. –

0

Bạn cần phải bao gồm json2.js

xem json2 inclusion

để biết thêm chi tiết. Có những trường hợp chúng ta phải đối phó với các trường hợp mà khách hàng sử dụng các tiêu chuẩn IE7. Vì vậy, mã của chúng tôi cũng phải phục vụ cho những trường hợp như vậy. Chúng tôi là một trang web bán lẻ được truy cập bởi hàng trăm khách hàng sử dụng các tiêu chuẩn IE7. Bao gồm cả json2 giải quyết vấn đề này

2

Tôi đã thực hiện LOCAL Jquery đã thêm .NEt 2.0 kiểm tra mã, nó hoạt động tốt mà không có bất kỳ vấn đề gì. Nhưng sau khi di chuyển mã đến máy chủ IIS v6 thì truy cập từ cùng một trình duyệt IE, sau đó vấn đề xuất hiện "JSON" không xác định. Sau khi đọc đề xuất này, hãy giảm bớt tệp json2.js và thêm dưới đây vào mã nguồn.

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

MỌI VIỆC LÀM VIỆC Tốt.

Cảm ơn bạn.

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