清除 Cookie 并重定向到 html 页面的 HTML 按钮

Html button that clears cookies and redirects to an html page

本文关键字:HTML 按钮 html Cookie 重定向 清除      更新时间:2023-09-26

我一直在寻找不同的解决方案,但你们中的任何人知道简单的方法编写一个多按钮来清除 cookie 并重定向到某个页面

我已经走到了这一步:

<script type="text/javascript">
$(document).ready(function(){
    deleteAllCookies();
});

现在我得到了一个链接,我只想让它刷新实际页面,清除cookie,然后重定向到另一个页面。

有没有简单的方法可以做到这一点?

刷新

后无法运行进程,您无法知道页面是如何加载的。但是,如果您想清除所有cookie而不是重定向到另一个页面,

deleteAllCookies() 函数派生自 Robert J. Walker 答案,

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) 您的代码检查"标志"(如果已设置),再次清除 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();
    });
});​