通常情况下,当用户关闭窗口或浏览器时,会话cookie将被删除。因此,在显示横幅之前,我们需要检查是否已存在保存的cookie。如果它们存在,我们可以通过JavaScript将它们加载回来。使用以下代码示例可以实现此目的:
//设置留存的cookie function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; }
//尝试加载cookie function loadCookies() { var x = document.cookie; var cookieArray = x.split(";");
for (var i = 0; i < cookieArray.length; i++) { var pair = cookieArray[i].split("="); if (pair[0] == "banner_cookie") { //将cookie值设置为元素 document.getElementById("banner").innerHTML = pair[1]; } } }
//在窗口卸载时保存cookie值 window.onbeforeunload = function() { setCookie("banner_cookie", document.getElementById("banner").innerHTML, 365); }
//在文档就绪时加载cookies $(document).ready(function() { loadCookies(); });
通过以上代码示例,当用户关闭banner之后,我们仍然能够在重复访问时显示横幅。