2010-06-13 33 views
14

Tôi đang phát triển tiện ích cho Google Chrome và đã gặp phải một số sự cố. Tôi đã tạo trang options.html và thêm nó vào tệp manifest.json. Trang hiển thị chính xác.Tiện ích mở rộng của Google chrome: bộ nhớ cục bộ

Tôi đã lưu các tùy chọn và sau đó quay lại trang mà tiện ích được cho là chạy.

Thật không may, bộ nhớ cục bộ cho các tùy chọn đã trả lại giá trị 'không' thay vì tùy chọn. Nếu tôi đặt tùy chọn lưu trữ cục bộ trực tiếp từ tập lệnh JS của tiện ích mở rộng, nó hoạt động tốt nhưng không hoạt động nếu được đặt từ trang tùy chọn.

Bất kỳ ý tưởng nào về cách tôi có thể truy cập vào options.html các giá trị lưu trữ cục bộ từ tệp Javascript của tôi trong tiện ích?

+1

Vì vậy, làm thế nào bạn sửa chữa nó? Im có cùng một vấn đề. 'options.html' sử dụng localStorage, nhưng kịch bản nội dung chỉ biết localStorage của trang web và localStorage của' background.js' là trống ... – Rudie

+1

Tôi đã sửa nó bằng cách sử dụng API lưu trữ mới: https://developer.chrome .com/extensions/storage.html – Rudie

+0

Tại thời điểm này, bạn nên sử dụng ['chrome.storage'] (https://developer.chrome.com/extensions/storage), chứ không phải [' localStorage'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) trong các tiện ích mở rộng của Chrome, trừ khi đó là mục đích cụ thể của bạn để tương tác với 'localStorage' cho một trang web cụ thể bằng cách sử dụng tập lệnh nội dung. – Makyen

Trả lời

24

có bạn cài đặt chúng bằng cách sử dụng:

localStorage["var"]=data; 

hoặc

localStorage.var=data; 

và bạn đang tải chúng bằng cách sử

var myvar = localStorage.var; 

Bạn có thể xem API here

+1

Có. Tuy nhiên, tôi đã giải quyết được vấn đề, cụ thể là Chrome. – Rohan

+0

thực sự? nó luôn luôn làm việc cho tôi, có lẽ nó chỉ là tạm thời? nhưng ít nhất nó hoạt động ngay bây giờ. – leegeorg07

+0

hi rohan i am phải đối mặt với cùng một vấn đề bạn có thể xin vui lòng gửi giải pháp? –

14

Các đồng phương pháp rrect là:

if (typeof(localStorage) == ‘undefined’) { 
    alert(‘Your browser does not support HTML5 localStorage. Try upgrading.’); 
} 
else { 
    try { 
    localStorage.setItem(“name”, “Hello World!”); //saves to the database, “key”, “value” 
    } 
    catch (e) { 
    if (e == QUOTA_EXCEEDED_ERR) { 
     alert(‘Quota exceeded!’); //data wasn’t successfully saved due to quota exceed so throw an error 
    } 
    } 
    document.write(localStorage.getItem(“name”)); //Hello World! 
    localStorage.removeItem(“name”); //deletes the matching item from the database 
} 

THAM KHẢO: http://html5tutorial.net/tutorials/working-with-html5-localstorage.html

+13

Vâng, đây là cách mạnh mẽ để truy cập localStorage đối với các javascripts, nhưng bất kỳ phiên bản nào của Chrome có hỗ trợ các phần mở rộng sẽ hỗ trợ localStorage, vì vậy nó là thừa. – Jason

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