Когда кнопка «Назад» запускает popState, как я могу предотвратить обновление страницы?

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

j

25
задан GhotiPhud 25 February 2011 в 21:22
поделиться

1 ответ

Это может помочь

Событие unload отправляется элементу окна, когда пользователь уходит со страницы. Это может означать одно из многих. Пользователь мог щелкнуть ссылку, чтобы покинуть страницу, или ввести новый URL-адрес в адресной строке. Кнопки «Вперед» и «Назад» активируют событие. Закрытие окна браузера вызовет событие. Даже перезагрузка страницы сначала создаст событие выгрузки.

Ссылка

http://api.jquery.com/unload/

непроверенная

    $(window).unload(function(e){    
        e.preventDefault();
        $(window).trigger('popstate ');      

    });    

    $(window).bind('popstate ',function(){

   //your ajax call here 
    });

и, наконец, DEMO нажмите на кнопку назад браузера, чтобы увидеть, как она работает

обновление

вы правы, выгрузка будет отменена, но вы можете сделать что-то вроде

$(window).unload(function(e){
    e.preventDefault();
    $(window).trigger('beforeunload');   

});


$(window).bind('beforeunload',function(){

alert('call your ajax here');
    return '';
});

еще одну демонстрацию

1
ответ дан 28 November 2019 в 21:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: