Appleデベロッパのよくある質問から
Safariには、ユーザーが選択した(「ナビゲートした」)ページにのみCookieの書き込みを制限する保守的なCookieポリシーが付属しています。
デフォルトでは、Safariは直接移動するサイトからのCookieのみを許可します。(つまり、そのドメイン名のURLを持つリンクをクリックした場合)。
つまり、自分のサイトからiFrameを使用して別のサイトのページを読み込んだ場合、他のサイトはCookieを設定できません。(たとえば、チケットショップ)。他のドメインに直接アクセスするとすぐに、他のサイトは独自のCookieにアクセスして変更できるようになります。
他のサイトのコードにアクセスできない場合、どうすればユーザーエクスペリエンスをできるだけ目立たなくすることができますか?
他のサイトのCookieがすでに設定されているかどうかを確認し、必要に応じて他のサイトへの直接リンクを最初に表示する(javascript?)方法はありますか?
アップデート:
HTML5機能の「window.postmessage」は良い解決策のようです。
役立つ可能性があり、最新のブラウザと互換性のあるjQueryライブラリがいくつかあります。
本質的に、iFrameドキュメントはJsonを使用してウィンドウ要素を介してメッセージを送信します。
とても素敵なPostmessage-plugin、daeparkによる、私が働いた。
ベン・アルマンによる別のjQuery postMessageが見つかりましたが、テストしていません。