2010-08-02 38 views
25

Tôi đang sử dụng localStorage trong ứng dụng JS của mình và tôi đã tự hỏi tại sao IE9 khiếu nại localStorage == undefined. Theo như tôi biết, IE8 hỗ trợ nó, là ở đây bất kỳ cách nào để có được nó làm việc trong phiên bản mới?đối tượng localStorage không được xác định trong IE

+8

Bạn đang thử nghiệm này trên một tập tin HTML cục bộ với tập tin file ': //' giao thức? –

+0

Nhập 'localStorage' trong giao diện điều khiển Công cụ Dev của Nền tảng xem trước hoạt động cho tôi trên các trang http –

+0

@Akexandre Jasmin oh bạn nói đúng, tôi quên nó không hoạt động. Cảm ơn bạn. –

Trả lời

49

Bạn có đang thử nghiệm tệp này trên tệp HTML cục bộ không? tức là một URL file:///?

localStorage chỉ khả dụng trên các trang web HTTP. Điều đó đã không thay đổi trong IE9 Dev Preview.

+0

@AJ. Cảm ơn. Tôi đã có một nghi ngờ đó là vấn đề, nhưng vẫn còn tự hỏi những gì đã sai khi thử nghiệm trong IE. Tôi bắt đầu chạy trang thử nghiệm của mình từ bên trong một ứng dụng web và nó hoạt động tốt trên IE, FF và Chrome. – Stonetip

2

Cố gắng mở tập tin như tập tin

này: //127.0.0.1/c$/pathtofile/file.html

+0

Tôi không nghĩ rằng công trình. Không thể làm cho nó hoạt động trong IE11, ít nhất. Ah, tốt, sử dụng máy chủ web mongoose, nó đủ nhỏ và sau đó localSTorage hoạt động. – raddevus

+2

@daylight Nó hoạt động nếu bạn cũng thêm 'file: // 127.0.0.1' vào danh sách các trang tin cậy. – grammar31

14

IE 11 CÔNG TRÌNH

Tất cả bạn cần hai làm thêm tập tin: //127.0.0.1 đến các vùng tin cậy dưới tab an ninh (LƯU Ý: đảm bảo không đánh dấu chọn hộp kiểm https) thêm dòng này vào đầu hoặc tập lệnh của bạn, tùy thuộc vào mã của bạn mà bạn có thể không cần trừ khi bạn có thể không kết nối với internet.

!localStorage && (l = location, p = l.pathname.replace(/(^..)(:)/, "$1$$"), (l.href = l.protocol + "//127.0.0.1" + p));

!localStorage && (l = location, p = l.pathname.replace(/(^..)(:)/, "$1$$"), (l.href = l.protocol + "//127.0.0.1" + p)); 
 

 
if (typeof(Storage) != "undefined") { 
 
    // Store 
 
    localStorage.setItem("lastname", "Smith"); 
 
    // Retrieve 
 
    alert(localStorage.getItem("lastname")); 
 
} else { 
 
    alert("Sorry, your browser does not support Web Storage..."); 
 
}

+0

Tuyệt, công trình này! Trên máy tính của tôi ngay cả khi không thay đổi bất cứ điều gì trong các tab bảo mật vv Một lưu ý: mã này ném một 'biến không xác định trong chế độ nghiêm ngặt' lỗi nếu bạn thực thi mã của bạn ở chế độ nghiêm ngặt. Để giải quyết, viết lại trong chế độ không ngưng tụ ('if (! LocalStorage) {....}') – Tyblitz

+0

người đàn ông này hoạt động !, cách tuyệt vời để lừa IE !! – Nikunj

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