这是pushState
和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。我的问题是:
在这种情况下触发
popstate
事件时,如何获取上一页页面的网址?我尝试了document.referrer
,但未显示任何内容。 最佳答案
请尝试将previousUrl保留在变量中并收听。
<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>