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

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

如何获取statechange事件中的上一个 URL?

4

3 回答 3

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。

于 2012-11-08T22:27:26.150 回答
3

我要做的就是将 URL 推送到状态对象,以便您可以再次获取它。

所以当你使用 pushState 时:

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

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

于 2014-03-27T10:08:41.793 回答
-4

尝试这个:

alert(document.referrer);

笔记:

如果用户直接导航到页面(不是通过链接,而是例如通过书签),则该值是一个空字符串。由于此属性仅返回一个字符串,因此它不会让您对引用页面进行 DOM 访问。

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

于 2012-11-08T22:23:57.713 回答