Cookie不是在Safari,ios中设置的,而是在ie,ff,chrome中工作
Cookie not being set in Safari, ios but works in ie, ff, chrome
我被提醒说,当物品使用safari/ios放入我们的购物车时,它们不会显示。 未设置购物车 Cookie。 它由重定向页面设置。 我看到了有关野生动物园未设置 cookie 和重定向的问题,但是如果我取出重定向,它仍然没有设置。 这是代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>
<script type="text/javascript">window.onload= function() {
SetCookie('RORDERID','OECLICK*17180*39521',10);
setTimeout("redir()",100);}
function redir(){window.location = 'http://www.shopthethirdfloor.com/forward-to-ttf-cart.html';}
function SetCookie(cookieName,cookieValue,nDays) {var today = new Date();var expire = new Date();
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString();}</script>
</head>
<body><br>If you are not redirected to the shopping cart, <a href="http://www.THESITE.com/forward-to-ttf-cart.html">click here</a></body></html>
我想也许 setTimeout 会允许它工作,但如果我取出对 redir() 的调用,它仍然没有设置 cookie。
有什么建议吗?
附加说明:我找到了一个关于此的帖子,并将代码更新为:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>
<script type="text/javascript">window.onload= function() {
setCookie2('RORDERID','OECLICK*17180*43',10,'','','');
//setTimeout("redir()",100);
}
function redir(){window.location = 'http://www.shopthethirdfloor.com/forward-to-ttf-cart.html';}
function setCookie2 (name, value, nDays, path, domain, secure) {var today = new Date();var expires = new Date();
expires.setTime(today.getTime() + 3600000*24*nDays);
var curCookie = name + "=" + encodeURIComponent(value) + (expires ? "; expires=" + expires.toGMTString() : "") + (path ? "; path=" + path : "") + (domain ? "; domain=" + domain : "") + (secure ? "secure" : "");
document.cookie = curCookie;}</script>
</head>
<body><br>If you are not redirected to the shopping cart, <a href="http://www.thesitename.com/forward-to-ttf-cart.html">click here</a></body></html>
它可以工作,但仍然不适用于我的网站。 此代码正在我网站上的其他域的 iframe 中运行。 该网站 www.shopthethirdfloor.com。 如果您转到产品,选择一个产品并将其添加到购物车,它不会在 safari 上添加 cookie,但会添加其他浏览器。
好的,经过更多的挖掘和反复试验,这是 Safari 无法在 iframe 跨域中设置 cookie 的问题。 我在包括这里在内的网络上尝试了几个建议,但它们要么不相关,要么不起作用(很旧)。 我发现我有 2 个选择。 首先,将框架域更改为父窗口域的子域,我本可以这样做,但需要更改我不想做的无数链接和支付网关。 第二个,采取了几个步骤,但效果很好,如下所示:尝试设置 cookie 的页面检查它是否是 safari 浏览器,如果是,则将窗口位置更改为与浏览器在 get 变量中传递 cookie 相同的域中的 php 脚本,这反过来又将窗口位置更改为来自 iframe 服务器的 asp 脚本,该脚本向其发送具有 cookie 设置代码的 cookie 信息,并在设置 cookie 后, 加载购物车的页面。这里的关键是获取 cookie 设置页面,该页面需要将 cookie 设置到父窗口中,然后加载新的目标页面。
这有几个步骤,但效果很好。
尝试使用HTML5本地存储概念在Safari浏览器中实现cookie存储
默认的野生动物园设置将是 Cookie 启用受信任的站点,因此您必须启用设置以启用 cookie 存储...要克服这个问题,您可以使用HTML5本地存储概念
- 在FF和IE中使用vimeo播放器的问题-加载flash播放器而不是使用HTML5播放器
- 如何修复FF和IE中的Javascript无效日期错误
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- 获取所选选项的Javascript在Webkit/FF中有效,但在IE中无效
- Image Map 在 FF 和 IE 中不起作用(使用 onclick javascript)
- 没有在带有IE-FF的IFrame中运行的脚本是可以的
- Highcharts数据FF和IE中的标签定位问题
- ISO 8601日期JS解释差异-IE/FF与Chrome
- 日期&时间脚本-ie vs ff
- 在IE / FF中使用getElementsByTagName时,自定义标签的处理方式不同
- 从JavaScript调用JAVA小程序方法,IE / FF对象/嵌入问题
- 如何通过IE/FF将CSS规则添加到文档片段中
- 弹出窗口无法在IE/FF/Safari中滚动.适用于Chrome
- jQuery JIRA Post不能在IE/FF中工作
- 使用innerHTML/textContent/innerText将字符串更改为日期,在Safari / IE / FF
- 内存泄漏递归javascript函数在IE,FF,谷歌浏览器
- jQuery .on()方法不工作在Chrome(但在IE &FF)
- jQuery不需要的排序数组输出在Chrome和IE (FF工作良好)
- Div定位行为在IE, FF和Opera
- Chrome不从javascript预加载图像.适用于IE, FF