В 2015 году для этой работы есть подходящий обходной путь. Скажем, есть сайт y.com, который включает iframe с сайтом x.com. Iframe x.com хочет сохранить куки. Это не разрешено политикой 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,'*');
Также вы можете отправлять сообщения в iframe, если хотите прочитать cookie. Или вы можете включить его в качестве параметра в URL iframe x.com, используя javascript:
iframe.setAttribute('url','x.com/?cookieval='+YOUR_COOKIE_GET_METHOD('cookiename'));