我有一个非常奇怪的问题,我正在寻找任何可能的想法。我根据是否在客户端的计算机上找到了cookie来加载天桥。在天桥上有一个“不,谢谢”复选框,上面写着“不再显示”。我检查是否在天桥页面中检查过这个:
$(document).ready(function() {
jQuery(window).bind("beforeunload", function(){ setCookieFO('noShowMerkleCpn','true',180); });
});
function setCookieFO(c_name,value,exdays){
if($('#noThanks').attr('checked') ){
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}else{
}
}
我在Firebug中运行了代码并验证了cookie在文档卸载时保存。我甚至可以进入我的cookie并找到cookie。以下是我检查cookie的方法:
function runFancyBox(){
var idx = document.cookie.indexOf('noShowMerkleCpn');
if(idx < 0 ){
$('#cpnForm').click();
}else{
}
}
我并不关心cookie的价值。我只是检查它是否存在并显示天桥如果没有。但是,由于某种原因,即使cookie存在,此检查也将返回-1。
额外信息:
Cookie保存在
下的flyover.Html页面中server/bank/ima
查找cookie的脚本位于同一台服务器上
server/bank/ima/script
使用此主机:server
/bank/ima/
是否有任何可能导致此问题的跳出来?有什么建议吗?
答案 0 :(得分:1)
还要注意您对checked属性的使用:
if($('#noThanks').prop('checked'))
http://timmywillison.com/2011/When-to-use-.attr%28%29-and-.prop%28%29.html
答案 1 :(得分:1)
我在localhost和我的服务器上都尝试了你的代码,它运行正常我假设你小心关闭浏览器以便实际设置cookie。我的猜测是你有路径问题,虽然从你对路径的看法来看,它肯定不是很明显。
我将代码保存在我的服务器上,因此您至少可以检查有效的代码。
设置Cookie的网址为:http://www.bridgesights.com/hondobridge/bbohondo/setcookietest.php
测试Cookie的网址是:http://www.bridgesights.com/hondobridge/bbohondo/bbohondo_files/getcookietest.php
虽然这与您的问题无关,但我强烈建议使用jquery-cookie插件来操作cookie。它非常轻巧,易于使用。链接是:https://github.com/carhartl/jquery-cookie