2015-04-21 4 views
2

Я хочу иметь возможность сделать следующее.Задняя кнопка перезапуска браузера браузера

$('#nxPage') После щелчка и браузер назад кнопка нажата, я хочу, чтобы заставить страницу перезагружать surl

$('#nxPage').click(function(e){ 
    surl = "main/products.html?a=324&u=3285" 
    if (surl != window.location) { 
     window.history.pushState({ path: surl }, '', surl); 
    } 
}); 

$(window).on('pushState', function(event) { 
    location.reload(true); 
}); 
+0

Возможный дубликат [Как вызвать изменение при использовании кнопки «Назад» с помощью history.pushstate и popstate?] (Http://stackoverflow.com/questions/8038726/how-to -trigger-change-when-using-the-back-button-with-history-pushstate-and-pops) –

ответ

0

Вы не можете изменить предыдущую запись истории, только текущий с replaceState(). Или нажмите новый с pushState(). Если вы хотите, чтобы предыдущая запись истории загружала определенный URL-адрес, ее сначала нужно было нажать или заменить тем же экземпляром страницы, который отображает веб-браузер.

+1

спасибо. это то, что я сделал? правильно? – Becky

0

Попробуйте это:

$('#nxPage').click(function(e){ 
    e.preventDefault(); 
    surl = "main/products.html?a=324&u=3285"; 
    history.pushState({ url: surl }, "", surl); 
}); 

$(window).on("popstate", function(e) { 
    change(e.originalEvent.state); 
}); 

function change(state) { 
    if(state === null) { // initial page 
    //do nothing 
    } else { // page added with pushState 
    location.reload(true); 
    } 
} 

(function(original) { // overwrite history.pushState so that it also calls 
        // the change function when called 
    history.pushState = function(state) { 
    change(state); 
    return original.apply(this, arguments); 
    }; 
})(history.pushState); 
+2

Нет оснований продолжать использовать '.bind()', которые будут удалены в ближайшее время и по любой причине использовать '.on()' вместо этого. Было бы лучше, если бы вы могли обновить ответ, используя '.on()' вместо '.bind()'. – Fergoso

+0

Внутренне '.bind' отображает непосредственно' .on', но да, я согласен с вашей точкой. Спасибо за предложение сделанное редактирование уже –

+0

@Beki Я действительно нахожу его по этой ссылке http://stackoverflow.com/questions/8038726/how-to-trigger-change-when-using-the-back-button-with-history-pushstate-and-pops благодарит его, я просто сделал небольшие исправления. Не очень. –

0

Вы можете отправить Handler Session, чтобы заставить перезагрузки. Это невозможно с помощью JavaScript, хотя ...

Смежные вопросы