【问题标题】:How to get the parts of a url using document.referrer?如何使用 document.referrer 获取 url 的各个部分?
【发布时间】:2013-03-07 22:27:13
【问题描述】:

我需要使用document.referrer 来获取以前的 URL 我还需要能够获取 URL 的部分,例如:

window.location.protocol
window.location.host
window.location.pathname

但我不知道如何使用document.referrer。有人有什么想法吗?

【问题讨论】:

  • window.location 是一个对象,有方便的花花公子方法来抓取不同的位。另一方面,document.referrer 是一个字符串,因此需要手动解析。

标签: javascript


【解决方案1】:

您可以创建一个以引用者为 url 的元素。

a 元素(带有 hrefs)可以像位置对象一样工作

var a=document.createElement('a');
a.href=document.referrer;
alert([a.protocol,a.host,a.pathname].join('\n'));
a='';

【讨论】:

    【解决方案2】:

    document.referrer 而言,没有与window.location 等效的方法,因此您唯一的选择就是分解字符串本身。您可以编写一个正则表达式来执行此操作或依赖一系列字符串拆分:

    var parts = document.referrer.split('://')[1].split('/');
    var protocol = document.referrer.split('://')[0];
    var host = parts[0];
    var pathName = parts.slice(1).join('/');
    

    【讨论】:

    • http://example.com/://foobar 是符合 RFC 3986 的有效 URI。您的 parts 可能缺少某些内容...
    【解决方案3】:

    如果您想要方便并且负担得起重量,请查看URI.js 或建议的URL parsers 之一。如果您不需要任何花哨的东西,<a>s href decomposition 就可以完成这项工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多