Soru Web sitesine doğrudan dosya sisteminden erişildiğinde IE9'daki yerel depolama başarısız olur


Her iki ifade window['localStorage'] ve window.localStorage

"file: /// C: /index.html" dosyasına erişilirken tanımsız

LocalStorage, dosya sistemi üzerinde web sitelerini çalıştırırken limitleri kapalı mı?

PS. Web sitesini isolatedStorage web sitesini barındıran bir Windows 7 telefonunda çalıştırıyorum.


21
2018-01-02 22:33


Menşei


HTML5 LocalStorage'ın bir ana makine adına / çalışmasına ihtiyacı var. Test etmek için yerel olarak apache'yi yüklemeyi deneyin. localhost - ChristopheCVB


Cevaplar:


Evet, IE9 yerel dosyalar için localStorage özelliğini desteklemiyor. Bulabildiğim herhangi bir resmi belgede değil, aynı sorun bu blogda açıklanan.

Web sitesini harici olarak barındırmanız veya diğer kalıcı veri yöntemlerini bulmanız gerekir. [HTML5 stili yerel depolama desteği, yine de birçok tarayıcıda hala beta sürümdedir. Özellikle yerel dosya sistemi sayfalarında.]

Internet Explorer için Microsoft tarafından geliştirilen W3C öncesi bir çözüm olan userdata davranışlarını deneyebilirsiniz. Ancak, yerel dosya sistemlerini destekleyip desteklemediğinden emin değilsiniz. Bağlantılar:

  1. http://www.javascriptkit.com/javatutors/domstorage2.shtml
  2. http://msdn.microsoft.com/en-us/library/ms531424(VS.85).aspx

Referanslar:

  1. https://bugzilla.mozilla.org/show_bug.cgi?id=507361
  2. https://stackoverflow.com/a/7377302/1122351

23
2018-01-02 22:38



Teşekkürler, ben bloga bakacağım Sadece bu cevabı buldum: stackoverflow.com/questions/3392032/... - DevNull
Evet, benzer bir soruya da rastladı. [Güncellenmiş linklere bakınız]. Afedersiniz! - benesch
WebDB, WebStorage ve IndexDB'nin aynı soruna sahip olduğuna inanıyorum. Şu anda file: // ile çalışacak localStorage için bir alternatif var mı? - DevNull
userdata davranışları, potansiyel olarak. Cevabımı güncelledim. Bu işe yaramazsa, şanstan kurtulmuş olabilirsiniz. Siteyi gerçek bir web sunucusunda barındırabilmeniz için herhangi bir şans var mı? - benesch
Belki WP7'mde çalıştırabilir miyim? Buradan yeni bir soru olarak buraya gönderildi: stackoverflow.com/questions/8706257/... - DevNull


Ek bir bonus olarak, IE bu sorunla uğraşmak için herhangi bir girişimde bulunacak.

Yapacağınız aklı başında, kendi kukla yerelStorage'ınızı dışarıda bırakmak, böylece yerel FileSystem'dan yüklerken en azından sizin işiniz bozulmaz.

if (document.all && !window.localStorage)
{
    window.localStorage = {};
    window.localStorage.removeItem = function () { };
}

Bunu çalıştırdıktan sonra hangi uyarı (window.localStorage) açılır? "Tanımsız" olduğunu düşündün mü ???

Teşekkürler, IE! Şimdi bu işi yapmak için yapabileceğimiz gerçekten çirkin bir hack var. IE, "localStorage" adlı gizli sözcüğünü yeniden kullanmanıza izin vermeyeceğinden, tüm şeyi başka bir yere taşıyacağız:

window.localStorageAlias = window.localStorage;
if (document.all && !window.localStorage)
{
    window.localStorageAlias = {};
    window.localStorageAlias.removeItem = function () { };
}

Şimdi, normalde localStorage ['fasulyeler'] = 7 olduğunu her yerde, sadece localStorageAlias ​​['beans'] = 7 yapıyorsunuz ve işinize geri döndünüz. Doğal olarak, IE aslında olmaz mağaza Yerel dosya sisteminden çalışırken oturumlar arasında herhangi bir şey var. Ama en azından kırmayacak.

Ekstra kredi için, yukarıdaki kodu IE'nin gerçekte saklayacağı bir kalıcı depoda takas etmek için düzeltebilirsiniz. kullanım yerel olarak çalışırken.


5
2017-09-04 09:33



Çökmeleri önlemek için ilginç bir saldırı. Teşekkürler. Ama takas edilecek herhangi bir kalıcı depolama alternatifleri olduğundan şüpheliyim. Orada nerede diliyorum. - DevNull


Aynı problemim var ve yedek çözümlerle iki eklenti buldum:

https://github.com/andris9/jStorage

HTML5 Yerel Depolama geri dönüş çözümleri

İlkini daha çok seviyorum çünkü daha küçük ve daha basit.


1
2018-02-06 16:08



jstorage, bir sunucuda değil, yerel bir dosyada kullanıldığında çalışır mı? Örneğin, jstorage kullanan C: \ testinde bir dosyam varsa, jstorage IE9 ile çalışır mı? Benim soruma bakın stackoverflow.com/q/24210706/2658159. - Aaron Thomas