簡體   English   中英

JavaScript清除所有cookie

[英]Javascript clear all cookies

我正在嘗試清除所有cookie,其中一些cookie是在服務器上設置的,其中一些是瀏覽器cookie。

我嘗試使用document.cookie =“”,但這不能滿足我的需求,因此我編寫了一些Javascript代碼,如下所示

pauseClearAllCookies函數稱為onload。

<script type="text/javascript">

        //var cookie_names = new Array("__utma", "__utmb", "__utmc", "__utmz", "mortgage", "track_source","currency","selenium_testing","visit_secure_token", "rdb_history", "_csuid", "search", "finance", "searchhistory");

        function pauseClearAllCookies(){
            Set_Cookie("selenium_testing","1");
            drawTable();
            setTimeout("checkCookies();",1000);
            document.getElementById('msg').innerHTML = "Gathering Cookies....";
        }

        var cookie_counter = 0;
        var cookieList;

        function checkCookies(){
            if(document.cookie.indexOf(";") != -1){
                cookieList = document.cookie.split(";");
            }else{
                cookieList = [document.cookie];
            }
            setTimeout("clearAllCookies();",1000);
        }

        function clearAllCookies(){

            document.getElementById('msg').innerHTML = "Deleting Cookies....";

            if(cookie_counter < cookieList.length ){

                var cookieName = "";

                if(cookieList[cookie_counter].indexOf("=") != -1){
                    cookieName = cookieList[cookie_counter].split("=")[0];
                }else{
                    cookieName = cookieList[cookie_counter];
                }
                document.getElementById('msg').innerHTML = "Deleting Cookie: "+cookieName;
                // clear js cookies
                Delete_Cookie(cookieName, '/', document.domain);
                Delete_Cookie(cookieName, '/', '.www.abc.co.uk');
                Delete_Cookie(cookieName, '/', 'www.abc.co.uk');
                Delete_Cookie(cookieName, '/', '.abc.co.uk');

                // clear server cookies
                Delete_Cookie(cookieName, '/', '');

                // increment counter
                cookie_counter++;

                drawTable();
                //recall the function
                setTimeout("clearAllCookies();",800);
            }else{
                Set_Cookie("selenium_testing","1");
            }
        }
        function drawTable() {
            var allcookies = document.cookie.split(";");
            document.getElementById('heading').innerHTML = allcookies.length + " cookie found";

            var table_html = "<table class='data'>";
            for(var i=0; i < allcookies.length; i++){
                var cookie = allcookies[i].split("=");
                table_html +=  "<tr>";
                table_html +=  "<td>"+(i+1)+"</td>";
                table_html +=  "<td>" + cookie[0] + "</td>";
                table_html +=  "<td>" + cookie[1] + "</td>";
                table_html +=  "<tr>";
            }

            table_html += "</table>";

            document.getElementById('table').innerHTML = table_html;
        }
    </script>

問題是,每次我運行此代碼時,都會留下一個cookie,它會循環遍歷,但不會被刪除,並且它始終是數組中的第一項。 非常感謝您對解決此問題的任何幫助。

您是否嘗試將所有cookie時間格式設置為“毫秒前”? 應該清除它。

添加https://github.com/carhartl/jquery-cookie庫並執行此腳本

為(var $ .cookie()中的它)$ .removeCookie(it);

數組中的第一個對象始終標記為0

.split()[0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM