2010-12-01 4 views
11

iPad/iPhoneはサードパーティのサイトからのCookieをサポートしていないため、localStorageに値を保存します。ドメインAの例は次のとおりです。JavascriptのlocalStorageとドメイン

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

このスクリプトはドメインBにアクセスできます.localStorageは素晴らしいです。ただし、値はdomainAに格納されています。なぜなら、その値はドキュメントの場所だからです。

ソースがdomainBにあるiframeの中にスクリプトを置くと動作しますが、フレームは避けようとしています。ですから、私の質問は:get/setをリモートドメイン上のlocalStorageに値を設定する方法はありますか?

+6

神様私は願っていません。 –

+0

おい、あなた自身の質問を読んでください:**ローカル**ストレージ**リモート**ドメイン:)ちょうど冗談、私はあなたが意味することを知っています。しかし、答えを知らない。しかし、私はこの1つでJanとしています(+1) – Jan

+0

彼らはそれらをremoteCookiesと呼んでいませんが、それらは以前のドメインから参照されたURLを通して設定されていてもそれらを設定するドメインに存在します。似たようなことを達成することを望んでいた。スクリプトを含むスクリプトからiframeに変更するだけで解決できますが、より洗練されたものを期待していました。 –

答えて

5

iframeの回避策がないとこれはできません。

同一生成元ポリシーに違反する複数のドメインから同じのlocalStorageオブジェクトにアクセスする能力、および仕様:

ユーザーエージェントがSECURITY_ERR 例外を発生させなければならいつでもストレージオブジェクトのメンバー のいずれか元々のlocalStorage属性 によって返さ は、その 実効スクリプト起源 のlocalStorage属性にアクセスされたWindowオブジェクトのドキュメントの原点と 同じではありません、スクリプトによってアクセスされています。

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

これはiPhoneのためではなかった場合、私はフラッシュ・ソリューションをお勧めします。しかし、localStorageでは、クロスドメインポリシーを実装するまであなたは不運だと思います。

関連する問題