Чтобы проверить, обновляется ли страница или переходит ли она на другую страницу

Я хочу удалить все файлы cookie, если моя страница переходит на другую страницу или закрывается, иначе я хочу, чтобы страница обновлялась в обычном режиме. Причиной этого является очистка файлов cookie для вкладок.

Итак, мой вопрос:
Как мы сможем узнать, что страница обновляется, перемещается или закрывается?

я пытался использовать

window.onbeforeunload = function() {
    var old_url= window.location.href;
    var new_url=  /* I dont know how to get new URL here */;
    if(old_url == new_url){
      return true;
    }
    else {
      return false;
    }
}

Это не работает :(
Есть ли другой способ сделать это?


person Prasad Jadhav    schedule 17.09.2012    source источник
comment
Не могли бы вы сохранить значения в механизме, который автоматически теряется при выгрузке страницы. Например, viewState или скрытые поля?   -  person Daniel Casserly    schedule 17.09.2012
comment
Спасибо Даниэль. Пожалуйста, проверьте мой ответ и дайте мне знать, если в нем есть какие-либо недостатки.   -  person Prasad Jadhav    schedule 17.09.2012
comment
почему вы хотите очистить куки при переходе на другую страницу?   -  person dotNETbeginner    schedule 17.09.2012
comment
потому что вкладки динамические ... и, следовательно, нет. вкладок и названия вкладок меняются вместе с содержимым, а файлы cookie jquery сохраняют файлы cookie как ui-tabs-1=2, где 2 — позиция вкладки слева. Следовательно, если структура моей вкладки изменится, она всегда открывает вторую вкладку.   -  person Prasad Jadhav    schedule 18.09.2012


Ответы (3)


Я объявил глобальную переменную в javascript.

<script type="text/javascript">
  var is_refresh_true = true;
</script>

И всякий раз, когда я пытался обновить свою страницу с помощью javascript, я просто менял значение переменной на false
Например:

<script type="text/javascript">
   function Callme(){  
      is_refresh_true = false;
      window.location.href = window.location.href;
    }
</script>

Также событие onUnload тела:

 function DeleteCokies() {            
     if (is_refresh_true) {
            deleteAllCookies();
     }
 }

Это не идеальное решение, но мне оно подходит.
Тем не менее я жду идеального ответа. Пожалуйста, ответьте, если кто найдет.

person Prasad Jadhav    schedule 17.09.2012

Если вы не установите срок действия для файла cookie, он будет очищен во время сеанса (т. е. при закрытии браузера).

Если вы переходите на другие страницы, я не вижу никаких проблем с этими файлами cookie на других страницах.. и предположим, что если вы снова вернетесь на ту же страницу, она покажет ту же вкладку..

person dotNETbeginner    schedule 17.09.2012

var confirmOnPage = function () {

   function del_cookie(name)
   {
       document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
   }

};

window.onbeforeunload = подтвердить на странице;

person Lucky    schedule 10.10.2013