Seite A enthält einen iFrame, in dem Seite B sichtbar sein soll. Seite A und Seite B haben unterschiedliche Domains z.B. www.a.com und www.b.com
Seite B muss Cookies setzen (z.B. Sessions über PHP für ein mehrstufiges Formular).
Im IE und im Safari verhindern die Sicherheitseinstellungen, dass diese 3rd-Party Cookies gesetzt werden können.
Hier liegt die Lösung bei der Seite B. Bevor irgend eine Ausgabe in der Seite kommt, also noch vor dem Doctype, muss ein P3P Header gesendet werden. In PHP geht das so:
header('P3P: CP="CAO PSA OUR"');
Hier finden sich im Internet zahlreiche Hacks. Ich habe einige probiert. Entweder zu umständlich oder funktionieren nicht. Mit HTML5 gibt es nun eine Lösung: HTML5: Sandbox-Modus für IFrames
Eigentlich für mehr Sicherheit gedacht, aber man kann dies auch nutzen um die Same-origin Policy zu umgehen. Wenn man dem iFrame folgendes Attribut mitgibt, funktionieren Cookies auch im iFrame im Safari:
sandbox="allow-same-origin allow-scripts allow-forms allow-top-navigation"