2015-10-14 50 views
0

我想在加載頁面時顯示覆蓋但只有一次,但是當用戶在數據庫中再次保存一些信息時,我在該頁面中有表單只需要將該疊加層顯示一次,直到窗口關閉。覆蓋只能使用cookie顯示一次

我使用Cookie來執行相同的,但我不能這樣做,我已經看到,代碼某處互聯網上,但它不工作,我不知道我在做什麼錯誤

$(document).ready(function() { 
    if (document.cookie != "shown") { 
    $(".overlay").fadeIn("fast", function() { 
     $(".box").animate({"top": "200px"}); 
    }); 
    $("img").click(function() { 
     $(".box").animate({"top": "-250px"}, function() { 
     $(".overlay").fadeOut("fast"); 
     }); 
    }); 
    document.cookie = "shown"; 
    } 
}); 

回答

0

document.cookie;分隔的列表格式存儲cookie。使用search功能,看是否顯示存在裏面:

if(document.cookie.search("shown") == -1) 
+0

由於其工作 – Ricky

0

檢查,如果cookie存在方法:

function cookieExists(name) { 
return document.cookie.indexOf(name + "=") == 0 ? true : document.cookie.indexOf("; " + name + "=")!=-1 
} 

用法:

cookieExists("Your_cookie_name") 

設置cookie的方法:

function setCookie(name, value, days) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
     var expires = "; expires=" + date.toGMTString(); 
    } else { 
     var expires = ""; 
    } 
    document.cookie = name + "=" + value + expires + "; path=/"; 
} 

設置的cookie(十年)用法:

setCookie("YOUR_COOKIE_NAME","true",10*365) 

刪除的cookie:

setCookie("YOUR_COOKIE_NAME","",0) 

最後: 1)你必須檢查他是否有餅乾,如果還沒有顯示overlay.2。)當他關閉疊加,absctact代碼時添加cookie:

1.)

if(!cookieExists("Mark_overlay")){ 
//SHOW OVERLAY 
} 

2)

//on overlay closing 
setCookie("Mark_overlay","true",10*365)