Я сделал простую функцию, которая заставляет все контейнеры вести себя как 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 отключен, проблем не возникает.
Заранее спасибо за любую подсказку или решение.