我正在尝试在javascript中设置会话cookie,如下所示:
document.cookie = 'name=alex; path=/'
Run Code Online (Sandbox Code Playgroud)
但即使我退出浏览器并再次启动浏览器,Chrome也不会将其删除.
我检查了Firefox和Opera,两者都按预期工作 - 他们在浏览器退出时删除了会话cookie.
Chrome是否只是忽略过期规则?
我检查了多个操作系统,发现会话cookie在Windows XP和Ubuntu中的Chrome上被删除,但在Mac OSX Lion中没有.
我的目标是在浏览器选项卡关闭时删除用户cookie.
可能吗?我可以处理浏览器选项卡关闭事件而无需刷新案例
如果我使用beforeunload或unload事件,当用户刷新页面时触发功能,我不希望这样,我想在关闭标签时运行.
我怎么能在Angular中做到这一点?
我正在用3个按钮构建弹出窗口!每个按钮需要设置一个cookie,但具有不同的到期时间/日期.我正在使用jquery.cookie这个!
1个按钮更像是一个会话cookie.因此,当单击此按钮时,弹出窗口需要消失并在我启动新的浏览器屏幕时再次显示.所以,当我在同一个浏览器窗口和同一个网站上打开一个页面时.
1个按钮用于"不再显示弹出窗口",将cookie设置为7天
我无法正确设置不同的到期时间.因此,例如当我单击带有会话cookie的按钮时,当我在网站内打开新页面时,弹出窗口再次显示.
我看不出我做错了什么!我没有得到任何控制台错误,但cookie不会正确设置.
我有的是这个:
$(document).ready(function(){
var my_cookie = $.cookie('regNewsletter');
if (!my_cookie) {
setTimeout(function(){
$('#newsletter').modal('show');
}, 1000);
}
$(".close--btn").on("click", function () {
$.cookie('regNewsletter', true, {
path: '/',
domain: ''
});
});
$(".dismiss--btn").on("click", function () {
$.cookie('regNewsletter', true, {
path: '/',
domain: '',
expires: 7
});
});
console.log(my_cookie);
// code for removing cookie when session ends //
window.onbeforeunload = function() {
$.removeCookie('regNewsletter', { path: '/', domain: '' });
};
$("#newsletter .btn").click(function(e){
e.preventDefault();
$.ajax({
...
success: function(txt, …Run Code Online (Sandbox Code Playgroud) 可能重复:
浏览器关闭时清除cookie
当我关闭浏览器时,我想删除cookie.我怎样才能做到这一点?
当用户打开网站时,我设置了以下cookie
add_action('init', 'is_it_mobile_or_desktop', 1);
function is_it_mobile_or_desktop(){
if (isset($_GET['site']) && in_array($_GET['site'], array('mobile', 'desktop'))){
setcookie( 'site', $_GET['site'], time() + 3600, COOKIEPATH, COOKIE_DOMAIN);
}
}
add_action('init', 'who_am_i', 2);
Run Code Online (Sandbox Code Playgroud)
现在我想在用户关闭浏览器时取消设置/删除此cookie(不是选项卡)
我怎样才能做到这一点?