Кнопка «Назад» не работает после window.location.replace (href );

Я сделал простую функцию, которая заставляет все контейнеры вести себя как link ("a" element ).

function allHot(element){
$(element)
.click(
    function(){
    var href = $(this).find('a').attr('href');
    window.location.replace(href);
})

.hover(
    function(){
    $(this).css({'text-shadow' : '0px 1px 0px #D6D6D6'});
    },
    function(){
    $(this).css({'text-shadow' : 'none'});
    }

);
}

Функция отлично работает. Вместо того, чтобы нажимать кнопку «еще», пользователь может щелкнуть в любом месте контейнера и будет правильно перенаправлен.

Однако, если пользователь после перенаправления нажимает кнопку «Назад», браузер возвращается на два шага назад, а не на один, как должен. Что еще более странно, история выглядит нормально.

Простая схема для лучшего описания:

Page1 -> Page2

Page2 [user clicks on "allHot" container] -> allHot redirects to Page3

Page3 [user clicks on browser back button] -> Page1

Это серьезная ошибка для веб-сайта, над которым я сейчас работаю. Я действительно не знаю, как это предотвратить. Ошибка проверена в Firefox, Chrome и Opera.

Проверено также в Opera «режим без javascript». Если javascript отключен, проблем не возникает.

Заранее спасибо за любую подсказку или решение.

12
задан sznowicki 7 August 2012 в 10:56
поделиться