2010-12-01 20 views
11

Da iPad/iPhone Cookies von Websites von Drittanbietern nicht unterstützt, möchte ich Werte in localStorage speichern. Ein Beispiel für DomainA könnte sein:Javascript localStorage und Domänen

<script src="http://domainB/something.js"></script> 

Dieses Skript auf DomainB kann auf window.localStorage zugreifen und es funktioniert gut. Die Werte werden jedoch in domainA gespeichert, da dies der Speicherort des Dokuments ist.

Wenn ich mein Skript innerhalb eines iframe, dessen Quelle auf DomainB ist, dann funktioniert es, aber ich versuche, Frames zu vermeiden. Meine Frage ist also: Gibt es eine Möglichkeit, Werte in localStorage auf einer Remote-Domain zu erhalten/festzulegen, so dass sie bei einem späteren Besuch von DomainB da sind?

+6

Gott, ich hoffe nicht. –

+0

Alter, lies deine eigene Frage: ** local ** Speicher auf einer ** remote ** Domain :) Scherze nur, ich weiß was du meinst. Ich kenne die Antwort nicht. Aber ich bin mit Jan auf dieser (+1) – Jan

+0

Nun, sie nennen sie nicht remoteCookies, aber sie existieren in der Domäne, die sie festgelegt, auch wenn durch eine URL aus der früheren Domäne verwiesen. Hoffte, etwas Ähnliches zu erreichen. Einfaches Ändern von Skript zu iframe, das ein Skript enthält, löst es, aber hoffte auf etwas Eleganteres. –

Antwort

5

Dies ist ohne Ihre Iframe-Problemumgehung nicht möglich.

Die Fähigkeit, das gleiche localstorage-Objekt aus mehreren Domänen, um auf die Same Origin Policy verstoßen würde, und die Spezifikation:

Benutzerprogramme eine SECURITY_ERR Ausnahme auslösen muss, wenn eine der ein Storage-Objekt Mitglieder ursprünglich durch das Attribut local zurückgegeben werden von Skripten, deren effektiven Skript Herkunft zugegriffen ist nicht die gleiche wie die Herkunft des Dokuments von das Window-Objekt, auf das das local Attribut zugegriffen wurde.

http://dev.w3.org/html5/webstorage/#security-localStorage

Wenn dies nicht für das iPhone ist, würde ich eine Flash-Lösung vorschlagen. Aber mit localStorage glaube ich, dass Sie Pech haben, bis Sie eine domänenübergreifende Richtlinie implementieren.

Verwandte Themen