用于清除cookie并重定向到html页面的Html按钮

时间:2012-05-10 15:14:12

标签: javascript html

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

我已经走到这一步了:

<script type="text/javascript">

$(document).ready(function(){
    deleteAllCookies();
});

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

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

3 个答案:

答案 0 :(得分:4)

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

deleteAllCookies()函数派生自Robert J. Walker answer

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";
    });
});

答案 1 :(得分:0)

要刷新页面,只需添加:

href="javascript:location.reload(true)"

到您的锚标签。

答案 2 :(得分:0)

因为,您想要刷新整个页面,将使用您的实际DOM代码进行刷新 让我们说你的按钮看起来像:

<a href="#" id="dostuff">Click me</a>

从您的示例代码我假设您正在使用Jquery

当用户点击按钮时a)所有cookie都被清除b)新的cookie被设置,它作为“标志”以检查您的页面是否被刷新c)页面刷新d)您的代码检查“flag”如果设置,再次清除cookie并重定向。 对于我的代码,我使用a jquery plugin来轻松操作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();
    });

});​