2016-05-17 3 views
5

Вот простой пример pushState и popstate события:Как я могу получить URL-адрес предыдущей страницы при запуске события popstate?

<button id="example_btn">Click me</button> 

<script> 
$("#example_btn").click(function(){ 
      history.pushState( 
       { 
        'url' : "example.htm" 
       }, null, "example.htm"); 
}); 
$(window).bind('popstate', function (event) { 
    if (event.originalEvent.state) { 
     console.log(event.originalEvent.state.url); 
    } 
}); 
</script> 

Когда запуская popstate события, оно показывает URL текущей страницы.

Мой вопрос:

Как я могу получить URL из предыдущей страницы, когда запуская popstate событие в этом случае?


P.S. Я пробовал document.referrer, но ничего не показывал.

ответ

0

Пожалуйста, постарайтесь сохранить прежний Url в переменной и прослушивать его.

<button id="example_btn">Click me</button> 

<script> 
var previousUrl = null; 
$("#example_btn").on('click', function(){ 
      previousUrl = location.href; 
      history.pushState( 
       { 
        'url' : "example.htm" 
       }, null, "example.htm"); 
}); 
window.onpopstate = function (event) { 
    console.log('Previous url was : ', previousUrl); 
}; 
</script> 
0

с PopStateEvent. Я использую с

window.history.pushState({} , {} , url); 

другие способы я не уверен.

Ниже я тестировал его работу. Надеюсь, полезно.

window.addEventListener('popstate', function(e){ 
    console.log(e.srcElement.location); 
    /* You get other location types( 'http://....' or '/index.html' */ 
    var previusUrl = e.srcElement.location.href; 
    console.log(previusUrl); 
    // with http://............ 
}); 

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

  • Нет связанных вопросов^_^