我一直在寻找不同的解决方案,但是你们中的任何人都知道编写一个清除 cookie 并重定向到某个页面的多个按钮的简单方法吗
我已经做到了这一点:
<script type="text/javascript">
$(document).ready(function(){
deleteAllCookies();
});
现在我有一个链接,我只想让它刷新实际页面,清除 cookie,然后重定向到另一个页面。
有什么简单的方法可以做到这一点吗?
我一直在寻找不同的解决方案,但是你们中的任何人都知道编写一个清除 cookie 并重定向到某个页面的多个按钮的简单方法吗
我已经做到了这一点:
<script type="text/javascript">
$(document).ready(function(){
deleteAllCookies();
});
现在我有一个链接,我只想让它刷新实际页面,清除 cookie,然后重定向到另一个页面。
有什么简单的方法可以做到这一点吗?
刷新后无法运行进程,您无法知道页面是如何加载的。但是如果你想清除所有cookie而不是重定向到另一个页面,
派生自Robert J. Walker 答案的 deleteAllCookies() 函数,
function deleteAllCookies() {
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
}
function clearAndRedirect(link) {
deleteAllCookies();
document.location = link;
}
<a href="javascript:clearAndRedirect('start.html')">Start your bacon</a>
其他方式:
如果你为你的锚标签设置了一个唯一的 id 或一个类,你也可以这样做,
<a href="#" class="startbacon">Start your bacon</a>
$(document).ready(function() {
$(".startbacon").click(function() {
deleteAllCookies();
document.location = "start.html";
});
});
要刷新页面,只需添加:
href="javascript:location.reload(true)"
到你的锚标签。
由于,您想要刷新整个页面将使用您的实际 DOM 代码进行刷新假设您的按钮如下所示:
<a href="#" id="dostuff">Click me</a>
从您的示例代码中,我假设您正在使用 Jquery
当用户单击按钮时 a) 清除所有 cookie b) 设置了一个新 cookie,它作为“标志”工作,以检查您的页面是否已刷新 c) 页面已刷新 d) 您的代码检查“ flag" 如果设置,则再次清除 cookie 并重定向。对于我的代码,我使用jquery 插件来轻松操作 cookie,我还将使用 ocanal 的函数(好东西:D)
function deleteAllCookies() {
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
}
$(document).ready(function() {
var test_flag = $.cookie('flag');
//get cookie
if (test_flag == "flag_is_set") {
//if cookie is set clear all cookies once more and redirect
deleteAllCookies();
document.location = "myPage.html";
}
$("#dostuff").click(function() {
//if button is clicked
//clear all cookies
deleteAllCookies();
//set a new cookie as flag
$.cookie('flag':'flag_is_set');
//refresh page
document.location.reload();
});
});