历史API:Javascript Pushstate,获取以前的URL

时间:2012-11-08 22:12:44

标签: url history.js html5-history

$(window).bind('statechange',function(){
     var State = History.getState(),
     url = State.url;
});

在以下函数中,url返回当前 URL。我正在寻找的是在该函数中获取以前的URL,例如,如果我在/cars/ferrari并转到/cars/fordurl将返回{{ 1}},但我希望得到cars/ford

如何在/cars/ferrari事件中获取以前的网址?

3 个答案:

答案 0 :(得分:11)

$(window).bind('statechange',function(){
    // Prepare Variables
    var State = History.getState(),
        url = State.url,
        states = History.savedStates,
        prevUrlIndex = states.length - 2,
        prevUrl = states[prevUrlIndex].hash;
});

这似乎可以解决问题! prevUrl为我提供了所需的URL。

答案 1 :(得分:1)

我所要做的就是将URL推送到状态对象,以便您可以再次将其恢复。

所以当你使用pushState:

history.pushState(
  {'previous_url': document.location.href}, 
  document.title,
  "?some_query_string"
);

然后,当你获得状态时,它将具有previous_url:)

答案 2 :(得分:-1)

试试这个:

alert(document.referrer);

注意:

  

如果用户导航到该页面,则该值为空字符串   直接(不是通过链接,但是,例如,通过书签)。以来   此属性仅返回一个字符串,它不会为您提供DOM访问权限   到推荐页面。

在此处查看更多内容:https://developer.mozilla.org/en-US/docs/DOM/document.referrer?redirectlocale=en-US&redirectslug=document.referrer