$(window).on('popstate', function(){
window.history.go(-1);
});
popstate火我有一個頁面使用popstate當用戶單擊後退按鈕在頁面加載
但在某些瀏覽器,在頁面加載,而不是後退按鈕點擊popstate火災。
它發生在Safari和觸摸設備。
$(window).on('popstate', function(){
window.history.go(-1);
});
popstate火我有一個頁面使用popstate當用戶單擊後退按鈕在頁面加載
但在某些瀏覽器,在頁面加載,而不是後退按鈕點擊popstate火災。
它發生在Safari和觸摸設備。
最簡單的黑客/解決方案是在初始頁面加載後,在setTimeout中添加popstate偵聽器。
setTimeout(function() {
window.addEventListener('popstate', myPopStateHandler, false);
}, 500);
我厭倦了爲解決方案拋出setTimeout,總是看起來像一個kludge。但現在,嘿它有用。
添加一個標誌來檢測頁面加載爲我解決這個問題。
編輯:添加了Safari瀏覽器檢測,否則首先點擊後退按鈕不會在Firefox或Chrome中觸發popstate事件。
var isSafari = /^((?!chrome).)*safari/i.test(navigator.userAgent),
firstLoad = true;
$(window).on('popstate', function(){
if (isSafari && firstLoad) {
firstLoad = false;
return;
} else {
// run your popstate code
}
});
我認爲這會對你有用。點擊[popstate-fire-on-page-load-issue] [1]。 [1]:http://stackoverflow.com/questions/15896434/window-onpopstate-on-page-load –