2015 年には、これに対する適切な回避策があります。サイト x.com の iframe を含む Web サイト y.com があるとします。x.com iframe は Cookie を保存しようとしています。これは Safari のポリシーでは許可されていませんが、y.com では保存できます。したがって、y.com は x.com からのメッセージをリッスンしてから、Cookie 自体を保存する必要があります。
var _cookieEvMth = window.addEventListener ? "addEventListener" : "attachEvent";
var _cookieEvAction = window[_cookieEvMth];
var _cookieEv = _cookieEvMth == "attachEvent" ? "onmessage" : "message";
_cookieEvAction(_cookieEv, function(evt){
if(evt.data.indexOf('cookieset')!=-1){
var datack = evt.data.split('|');
YOUR_CUSTOM_COOKIE_SAVE_METHOD(datack[1],datack[2],datack[3]);
}
},false);
x.com が Cookie を保存する必要がある場合、y.com にメッセージを投稿する必要があります。
window.parent.postMessage('cookieset|'+ckName+'|'+ckVal+'|'+days,'*');
また、Cookie を読みたい場合は、メッセージを iframe に投稿することもできます。または、javascript を使用して x.com iframe URL にパラメーターとして含めることができます。
iframe.setAttribute('url','x.com/?cookieval='+YOUR_COOKIE_GET_METHOD('cookiename'));