Mặc dù tôi đã thấy những phương pháp đề nghị sử dụng và làm việc, tôi nghĩ rằng thiết lập các giá trị của một lĩnh vực tiềm ẩn chỉ bằng cách sử dụng JSON.stringify phá vỡ HTML ...
Ở đây tôi sẽ giải thích những gì tôi có nghĩa là:
<input type="hidden" value="{"name":"John"}">
như bạn có thể thấy các dấu nháy kép đầu tiên sau khi khung dây chuyền mở có thể được giải thích bởi một số trình duyệt như:
<input type="hidden" value="{" rubbish >
vì vậy, cho một cách tiếp cận tốt hơn để tôi này sẽ đề nghị sử dụng hàm encodeURIComponent. Cùng với JSON.stringify chúng tôi shold có một cái gì đó như sau:
> encodeURIComponent(JSON.stringify({"name":"John"}))
> "%7B%22name%22%3A%22John%22%7D"
Bây giờ giá trị có thể được lưu trữ an toàn trong một loại ẩn đầu vào như sau:
<input type="hidden" value="%7B%22name%22%3A%22John%22%7D">
hoặc (thậm chí tốt hơn) bằng cách sử dụng đĩa dữ liệu thuộc tính của phần tử HTML thao túng bởi những kịch bản đó sẽ tiêu thụ dữ liệu, như vậy:
<div id="something" data-json="%7B%22name%22%3A%22John%22%7D"></div>
Bây giờ để đọc dữ liệu trở lại chúng ta có thể làm điều gì đó như:
> var data = JSON.parse(decodeURIComponent(div.getAttribute("data-json")))
> console.log(data)
> Object {name: "John"}
cũng xem: http://stackoverflow.com/questions/11118947/jquery-equivalent-for-json-stringify –