我正在使用这个javascript代码用于cookie,我希望实现这一点:当访问者点击关闭时,div将隐藏在网站的所有页面上。
<script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function()
{
if(getCookie('show_cookie_message') != 'no')
{
$j('#cookie_box').show();
}
$j('.cookie_box_close').click(function()
{
$j('#cookie_box').animate({opacity:0 }, "slow");
setCookie('show_cookie_message','no');
return false;
});
});
function setCookie(cookie_name, value)
{
document.cookie = cookie_name+ "=" + escape(value);
}
function getCookie(cookie_name)
{
if (document.cookie.length>0)
{
cookie_start = document.cookie.indexOf(cookie_name + "=");
if (cookie_start != -1)
{
cookie_start = cookie_start + cookie_name.length+1;
cookie_end = document.cookie.indexOf(";",cookie_start);
if (cookie_end == -1)
{
cookie_end = document.cookie.length;
}
return unescape(document.cookie.substring(cookie_start,cookie_end));
}
}
return "";
}
</script>
和
#cookie_box
{
position: fixed;
display: none;
bottom: 0px;
font-size: 0.8em;
z-index: 1000;
background:#393939;
padding:5px;
text-align:center;
width:99%;
color:#ffffff;
}
#cookie_box a:hover
{
color:#ffffff;
text-decoration: underline
}
<div id="cookie_box">Our site requires cookies to function, <a href="/cookies">click here</a> for more information <a href="#" class="cookie_box_close">Close [X]</a></div>
如果我点击“关闭”,它将关闭cookie_box div但仅关闭该页面。如果我浏览到另一个页面,div再次可见。 任何帮助都会很棒,谢谢!
答案 0 :(得分:0)
如果Cookie正确并且设置正确,您可以使用以下内容:
if (getCookie('show_cookie_message') != 'no') {
$j('#cookie_box').show();
} else {
$j('#cookie_box').hide();
}
这样可以确保它显示或隐藏。
答案 1 :(得分:0)
为了确保正确设置和检查cookie,我使用这些JS cookie代码经过多年的经验...有时候短路是不可靠的。
function getCookie(c_name){
var i,x,y,ARRcookies=document.cookie.split(";");
var ARRcookies_length=ARRcookies.length;
for (i=0;i<ARRcookies_length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}
function checkCookie(cookie_name){
var the_cookie=getCookie(cookie_name);
if (the_cookie!=null && cookie_name!=""){
return true
}
else {
return false;
}
}
function setCookie(c_name,value,exdays){
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;
}