2009-09-29 24 views
28

Vì vậy, tôi đang đùa giỡn với HTML 5 và localStorage và tôi nhận thấy rằng các giá trị của tôi chỉ được lưu trữ khi tôi chạy trang trong Firefox trên máy cục bộ (tức là http://127.0.0.1:8000/test/index.html), nhưng khi tôi chạy tệp cục bộ (tệp : /// C: /test/index.html) giá trị của tôi không được lưu trữ. Safari 4 không có vấn đề với cả hai thiết lập. Vì vậy, không ai biết nếu điều này là do thiết kế -.>DOM Storage on the Mozilla Developer Center"localStorage" trong Firefox chỉ hoạt động khi trang đang trực tuyến?

(Firefox 2 được phép truy cập vào kho đối tượng cao hơn trong hệ thống phân cấp miền so với tài liệu hiện này không còn được phép trong Firefox 3, cho lý do an ninh. Bên cạnh đó, đề xuất bổ sung này sang HTML 5 đã được loại bỏ khỏi HTML 5 đặc điểm kỹ thuật ủng hộ localStorage, đó là thực hiện trong Firefox 3.5.)

01.235.

Hoặc nếu có giải pháp thay thế?
Tôi tự hỏi vì lưu trữ ngoại tuyến chỉ hoạt động trực tuyến có vẻ ngớ ngẩn: P

Nếu ai tự hỏi, mã này là dễ dàng như nó được:

function save() 
{ 
localStorage.setItem('foo','bar'); 
} 

function load() 
{ 
var test = localStorage.getItem('foo'); 
alert(test); 
} 
+2

Xin chào, tôi đang viết thư cho bạn từ năm 2011. Nó vẫn chưa được khắc phục! https://bugzilla.mozilla.org/show%5Fbug.cgi?id = 507361 –

+0

... nhưng có vẻ hoạt động tốt ngoại tuyến với chrome – lapinferoce

+1

Cảm ơn chúa tôi đã tìm thấy điều này ... Tôi đã cố gắng gỡ lỗi trong Firefox và đã tự hỏi tôi đã đi sai vì tôi không thể thấy bất kỳ điều gì sai với mã của mình . Nó hoạt động trong IE và Chrome trong khi làm việc với file: // URL nhưng Firefox không hoạt động. Ngay sau khi tôi đặt nó trên một máy chủ, nó hoạt động tốt. –

Trả lời

22

Có vẻ như lỗi: Bug 507361 - localStorage doesn't work in file:/// documents
Hy vọng sẽ sớm được khắc phục!

2011-09-13: Sửa lỗi, được triển khai trong 'Mozilla8'. Tôi đã thử nghiệm điều này với Firefox 8 và nó hoạt động ngay bây giờ.

+3

Trong khi chờ đợi bạn có thể sử dụng Chrome để thử nghiệm các tập lệnh thử nghiệm ngoại tuyến vì nó không có lỗi này. – lapo

+0

Không thể kiểm tra điều này ngay bây giờ nhưng tôi nghĩ đây là câu trả lời cuối cùng! – hobotron

21

Vâng, tài liệu liên quan không nói rằng

localStorage giống với globalStorage [location.hostname], ngoại trừ bị scoped sang nguồn gốc HTML5 (sơ đồ + tên máy chủ + cổng không chuẩn)

Tôi không muốn tuyên bố rằng tôi hiểu 100% điều đó có nghĩa là gì, nhưng bit trong ngoặc đơn đề nghị rằng URL cần phải có các thuộc tính nhất định - đặc biệt là lược đồ và tên máy chủ là những gì Firefox xem xét một HTML 5 xuất xứ. Tôi nghi ngờ rằng các URL file:/// không khớp với điều này, trong khi http://127.0.0.1/ của bạn có.

chỉnh sửa: Nhìn vào W3C description of the Origin property, bước 7 có vẻ như nó có thể gây ra sự cố. Tùy thuộc vào cách xử lý localStorage được triển khai, nó có thể mong đợi một bộ 3 trở lại như bước 12, nhưng đối với một URL file:// giá trị trả lại có thể chỉ là về bất kỳ thứ gì.

Vì vậy, er, tôi cho rằng đó là do thiết kế. Trên sự phản ánh, rất có thể là điều này không thực sự là do thiết kế; không có lý do gì tại sao localStoragekhông nên hoạt động cho file:// URL. Nó có thể chỉ là một trường hợp đầu ra của một triển khai cụ thể cho trình duyệt không phù hợp với kỳ vọng của một trình duyệt khác.

Đối với cách giải quyết, xin globalStorage không làm những gì bạn muốn ở đây?

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