【问题标题】:How to get previous url including hash fragment using JavaScript?如何使用 JavaScript 获取以前的 url,包括哈希片段?
【发布时间】:2016-07-26 16:04:51
【问题描述】:

我需要获取上一个 url 以重定向到上一页。我有像www.mysite.com/users/register/#1 这样的网址。

我使用document.referrer 获取之前的网址,但它不返回散列部分(#1)。如何获取包含哈希部分的上一个url?

【问题讨论】:

  • 而且它只是在您自己的域内,没有来自跨域的引用?您可以将以前的 url 存储在本地存储或 cookie 中?
  • 这只是询问您自己网站内的推荐吗?还是来自不同的来源?
  • 你看过window.history吗?
  • @adeneo Eh... 阅读问题:“我需要获取上一个 url 以重定向到上一页”。所以... window.history.back(),嗯?

标签: javascript


【解决方案1】:

Try this one::

In previous page url:
www.mysite.com/users/register/#1

In Current Page:
$(document).ready(function() {
   var referrerUrl =   document.referrer.replace("#","e");
   var correctUrl=referrerUrl.replace("e","#");
});

【讨论】:

  • 正如问题清楚地表明:document.referrer 不包括哈希片段。
【解决方案2】:
$(window).bind('statechange',function(){
    // Prepare Variables
    var State = History.getState(),
        url = State.url,
        states = History.savedStates,
        prevUrlIndex = states.length - 2,
        prevUrl = states[prevUrlIndex].hash;
});

【讨论】:

    【解决方案3】:

    如何使用 JavaScript 获取以前的 url包括哈希片段

    正如您所指出的,其中的哈希片段部分意味着您不能使用 document.referrer

    如果上一个页面位于同一来源:您需要在该页面上使用记录完整 URL 的代码,例如 sessionStorage

    在上一页,也许每次hashChange 被触发:

    sessionStorage.setItem("last-url", location);
    

    在新页面上,获取网址:

    var lastUrl = sessionStorage.getItem("last-url");
    

    如果上一页的来源不同:我相当肯定你不能。

    我需要获取上一个 url 才能重定向到上一页。

    实际上,你没有。您只需 use history.go(-1) or history.back() 即可执行此操作,无论上一页的来源如何。

    【讨论】:

      【解决方案4】:

      也许你可以使用 onhashchange 事件。 当 url 改变时,它会产生一个带有旧 url 和新 url 的事件。 oldurl 甚至还有哈希部分

      【讨论】:

        【解决方案5】:

        尝试以前的网址,

            function backtopage() {
        
            window.history.back();
        }
        

        【讨论】:

        • 原来的答案是完全错误的。更新后的答案只是重复了我的一小部分答案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-11
        • 2012-07-24
        • 1970-01-01
        • 2011-01-20
        相关资源
        最近更新 更多