我正在开发一个电子商店的php网站。在我的购物车模板页面中,我定义了一个javascript cookie,因为我想存储用户在此特定页面上执行的特定选择。代码是
jQuery(document).ready(function($) {
$("input[name=\"license-selector\"]").click(function(){ // when license-selector radio button is being clicked
var thisElem = $(this); // value is being written to variable value
var value = thisElem.val();
//localStorage:
sessionStorage.setItem("option", value); // value stored in localstorage
//Cookies:
document.cookie="option="+value; // value stored in cookie
});
//localStorage:
var itemValue = sessionStorage.getItem("option"); // value is being loaded into variable itemValue
//Cookies:
var n = document.cookie;
if (n.indexOf("option=") !== -1) {
var cookieValue = n.substring(n.indexOf("option=")+7, n.indexOf(";")) // value is being loaded into variable cookieValue
if (cookieValue == "su") {single_user()};
if (cookieValue == "mu") {multi_user()};
}
});
因此,cookie获取正在单击的单选按钮的值。到现在为止还挺好。该脚本是从外部脚本文件调用的,该文件仅适用于此购物车页面。
现在,我尝试做的是每当用户离开此购物车页面时(而不是从网站导航,但每当用户决定访问时,例如同一网站的产品,主页等),都会删除此Cookie我正在努力)。我想删除cookie并让访问者在重新访问购物车页面时再次做出选择。总结:...他们在购物车页面,进行选择,存储cookie ...然后他们访问例如商店页面(或网站的任何其他页面),cookie被删除,当他们重新访问时购物车页面(同一会话),他们必须再次进行相同的选择(从而再次设置cookie)。
为了删除cookie,我已将此脚本暂时插入我网站的标题中(在结束标记之前)。
// Delete cookie
// store url on load
var currentPage = window.location.href;
var cookiePage = 'http://localhost/my-site/cart/';
// listen for changes
setInterval(function()
{
console.log(currentPage);
if (currentPage != cookiePage)
{
document.cookie = "option=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
var cookieValue = 0;
}
}, 500);
此脚本正在尝试检查当前网址,看它是否与购物车页面的网址相匹配。这项检查每半秒进行一次。如果用户不在购物车页面中,理论上该脚本应该删除cookie ...
正如你正确猜到的那样......它不起作用......任何使其成功的帮助都将受到极大的赞赏。目标是在访问者离开购物车页面时删除cookie。顺便说一句,我知道有onbeforeunload的解决方案,并调用一个函数来清空cookie,但我不想要这个解决方案。每当我点击"更新购物车"时,使用onbeforeunload会删除cookie。购物车页面中的按钮,我不想要这个(当我点击&#34时,购物车页面会通过ajax更新;更新购物车")。
再次感谢!!
答案 0 :(得分:0)
没关系......经过一百万次试验和错误后,我成功了。我决定在点击任何菜单项时绑定cookie删除功能。毕竟这很简单:(。