Javascript очистить все куки - PullRequest
0 голосов
/ 18 мая 2009

Я пытаюсь удалить все свои куки, некоторые из которых установлены на сервере, а некоторые - куки браузера.

Я попытался использовать 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, он циклически удаляется, но не удаляется, и его ВСЕГДА элемент номер один в массиве. Любая помощь в решении этих вопросов была бы очень признательна.

Ответы [ 3 ]

2 голосов
/ 18 мая 2009

Вы пытались установить все форматы времени cookie на «миллисекунду назад»? это должно прояснить это.

1 голос
/ 21 сентября 2016

Добавьте https://github.com/carhartl/jquery-cookie библиотеку и выполните этот скрипт

для (переменная в $ .cookie ()) $ .removeCookie (it);

0 голосов
/ 14 июля 2015

Первый объект в массиве всегда помечен 0

.split () [0]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...