Laden...

[gelöst] - HTML5 LocalStorage in MSIE >= 9

Erstellt von mosspower vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.019 Views
mosspower Themenstarter:in
456 Beiträge seit 2007
vor 8 Jahren
[gelöst] - HTML5 LocalStorage in MSIE >= 9

Hallo,

ich hab jetzt seit ein paar Tagen immer mal wieder eine zeitlang nach einer Lösung, bzw. Bug, gesucht und finde einfach nichts für das "simple Problem".

Ich habe in einem lokalen Netzwerk eine Webanwendung, welche lokal auf den Clients das LocalStorage Objekt benutzt für Benutzereinstellungen.

Chrome und die neusten FF-Versionen laufen so, wie sie auch sollen, nur der Internet Explorer "zickt" rum und verhält sich so, als ob es sich um ein LocalSession Objekt handelt, das bedeutet, während der Session speichert er alles so wie es auch sein soll, aber wenn ich eine neue Session aufmache, dann sind die Einstellungen alle weg.

Vielleicht "stolpert" hier einer mal drüber und kennt das Problem, denn ich weiß jetzt aktuell auch nicht weiter - dachte, dass es MSIE 11 unterstützt, weil ich auf dem 9er das Phenomän beobachtet habe und dann auf MSIE 11 ein Update durchgeführt habe aber mit dem gleichen Ergebnis.

Wer benutzt eigentlich diesen Dino noch? - Leider muss ich den auch unterstützen 😜

Also, in einer Session funktioniert alles aber sobald ich eine neue aufmache oder ein neues Fenster öffne im IE, dann ist alles weg - sehr komisch. 🤔

16.806 Beiträge seit 2008
vor 8 Jahren

Den IE als Dino bezeichnen ist mehr als leichtsinnig, denn gerade der IE 9-10 hat in Unternehmen noch eine Anteil von über 70%.

Der IE unterstützt wie alle anderen Browser den HTML5 Storage sauber und korrekt.
Worin sich der IE unterscheidet ist, dass Du das Dokument nicht via UNC Pfad öffnen darfst, sondern immer nur über einen Webserver.

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 8 Jahren

Vielen Dank, du hast mir mal wieder helfen können.
Mit einer lokalen Domain funktioniert das auch im IE und zwar über eine Session hinweg 👍

... da muss man erst mal draufkommen. 🙂

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 8 Jahren

Ich muss jetzt doch noch einmal den Thread hier öffnen.
Ich habe lokal eine Domain vergeben für den lokalen IIS und dann funktioniert es im IE auch nach einem Refresh in der gleichen Browsersession - was vorher nicht ging.

Nun ist es aber immer noch so, wenn ich eine neue Browsersession öffne mit neuem Fenster, dann sind die Einstellungen wieder weg ... wtf?
Ich kann mir nicht vorstellen, dass man im Intranet diese Funktionalität nicht benutzen kann.
Es muss doch auch möglich sein für "Web-"Applikationen, die im lokalen Netzwerk laufen? 🤔

16.806 Beiträge seit 2008
vor 8 Jahren

Ich verwende das selbst im Intranet und IE9 bis 11.
Funktioniert einwandfrei (mit einer corp-Domain und nicht .local, FYI).

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 8 Jahren

Ich hab das jetzt nochmal ausprobiert mit einer Domain im Web. Funktioniert da komischerweise auch nicht.

Ich rufe eine Domain im Netz auf und lasse mir eine Variable vom localStorage anzeigen und setze danach einen default-Wert.
Immer, wenn ich die Seite in einem neuen Fenster aufrufe, dann ist das Teil empty. Bei einem Refresh im Browser ist das Teil gesetzt.
Das Verhalten ist wie bei einem localSession-Objekt. WTF? 🤔

16.806 Beiträge seit 2008
vor 8 Jahren

Sicher, dass Du localStorage und nicht sessionStorage verwendest?
Was sagt der Chrom Debugger zum aktuellen Zustand (F12) bzw. Firefox Developer (nicht der normale FF).

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 8 Jahren

Sicher, dass Du localStorage und nicht sessionStorage verwendest?
Was sagt der Chrom Debugger zum aktuellen Zustand (F12) bzw. Firefox Developer (nicht der normale FF).

Nachtrag:

Wenn ich aus einem fremden Netz die Domain aufrufe (in meinem Netz), dann funzzt es auch im IE. Wenn ich aus meinem Netz die Domain aufrufe, dann verhält es sich wie ein sessionStorage-Objekt.

Chrome und FF funktionieren einwandfrei, so wie erwartet. 🤔

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 8 Jahren

Ich hab den Fehler gefunden:

Ich muss wirklich EXPLIZIT die Werte mit setItem und getItem abfragen.

Ein Beispiel. Wenn ich eine variable xyz den Wert "Hello, World" zuweisen möchte, dann geht es im Internet Explorer nur in einer Session mit:

locaStorage.xyz = "Hello, World";
alert(localStorage.xyz)

Bei den anderen Browsern funzzt das auch über eine Session hinweg.
Beim Internet Explorer nicht, da muss man dann folgendes verwenden, was auch in allen anderen Browsern funktioniert.

locaStorage.setItem("xyz", "Hello, World");
alert(localStorage.getItem("xyz"))

Naja, wieder was gelernt. Vielen Dank für deine Hilfe.

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 8 Jahren

Fu***, ich dreh durch 😁

Wenn ich das IE-Fenster zumache und innerhalb von 5 Sekunden ein neues aufmache, dann geht es, nach 5 Sekunden ist alles wieder weg, wtf?

Ggf. liegt es daran, dass noch nicht alles komplett aufgeräumt wurde und alte Sachen beim Neustart wiederverwendet werden.

Ich werd aus diesem Verhalten nicht schlau.

Nachtrag:
Auch aus einem fremden Netz heraus wird dann der Wert wieder zurückgesetzt nach bestimmter Zeit. Verhalten wie ein sessionStorage-Objekt auch im Netz. Muss man da im IE was einstellen?

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 8 Jahren

OK, jetzt doch noch gelöst und zwar (universal), egal ob lokal oder im Internet.

Das berühmte Häckchen "Delete browsing history on exit" muss deaktiviert werden, welches standardmäßig aktiv ist. 😁

Gott sei dank erledigt. 👍