2012-03-30 17 views
0

私は本当に奇妙な問題を抱えています。考えられるアイディアを探しています。クライアントのマシンにCookieが見つかったかどうかに基づいてロードする飛行機があります。飛行機には、「Do not show again」という「いいえ」チェックボックスがあります。私はそれが高架道路のページで、次のようにチェックされているかどうかを確認します。存在してもクッキーが見つかりません

$(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の内のコードを実行し、クッキーは、文書のアンロードに保存されますことを確認しました。私は私のクッキーに入ってクッキーを見つけることさえできます。クッキーをチェックする方法は次のとおりです。

function runFancyBox(){ 
var idx = document.cookie.indexOf('noShowMerkleCpn'); 
if(idx < 0){ 
$('#cpnForm').click(); 
}else{ 
} 
} 

私は本当にクッキーの値を気にしません。私はちょうどそれが存在するかどうかを確認し、それがなければフライオーバを表示します。しかし何らかの理由で、このチェックはクッキーが存在する場合でも-1を返します。

追加情報

クッキーが

server/bank/ima 

の下で私のflyover.Htmlページに保存されたクッキーを探しスクリプトは、同じサーバー

server/bank/ima/script 

でありますCookieは、このPath値とともにホストとともに保存されます。server

/bank/ima/ 

この問題を引き起こしている可能性のあるものはありますか?助言がありますか?

+0

あなたはdocument.cookieを読むときに実際にクッキーが存在することを確認しましたか? – jbabey

+0

ある意味で。私は小切手にブレークポイントを設定し、私のクッキーを見て、それを確認しました。 'document.cookie'はまだクッキーを見つけることができません。 – Rondel

+0

document.cookieは文字列を返します。あなたのクッキーはその文字列にありますか? – jbabey

答えて

1

2つのことを確認します。まず、追加しないでdocument.cookieを設定しているので、以前のすべてのCookieを削除します(悪い考え方)。次に、Cookieのドメインとパスを、それを読み取ったページと同じドメインに設定してください。

checked属性の使用状況に注意してください。私はローカルホストと私のサーバーの両方で、あなたのコードを試してみました

if($('#noThanks').prop('checked'))

http://timmywillison.com/2011/When-to-use-.attr%28%29-and-.prop%28%29.html

1

、それが正常に動作します私はあなたに慎重だったと仮定しますクッキーが実際に設定されるようにブラウザを閉じます。私の推測では、あなたはパスの問題を抱えていますが、パスについては、それが何であるかは明らかではありません。

私は自分のサーバーにコードを保存しているので、少なくとも動作するコードを調べることができます。クッキーを設定するための

URLは次のとおりです。クッキーをテストするhttp://www.bridgesights.com/hondobridge/bbohondo/setcookietest.php

URLは次のとおりです。http://www.bridgesights.com/hondobridge/bbohondo/bbohondo_files/getcookietest.php

これはあなたの問題とは何の関係もありませんが、私は非常に操作するためにjqueryのクッキーのプラグインをお勧めしますクッキー。非常に軽量で使いやすいです。リンクは:https://github.com/carhartl/jquery-cookie

+0

それはパスの問題でした。 @jbabeyのようなクッキーのパスを設定することで、この問題が解決されました。 – Rondel

関連する問題