Javascript 路径名引用者

Posted

技术标签:

【中文标题】Javascript 路径名引用者【英文标题】:Javascript pathname referrer 【发布时间】:2011-09-25 11:41:34 【问题描述】:

如何在 javascript 中执行与 document.location.pathname 相同的功能 - 除了引荐来源网址?像 document.referrer.pathname 这样的东西?

谢谢。

【问题讨论】:

试试 document.referrer 怎么样。例如:alert(document.referrer); 【参考方案1】:

不行,你只能手动提取需要的部分:

document.referrer.replace(/^[^:]+:\/\/[^/]+/, '').replace(/#.*/, '')

【讨论】:

这并不完全正确,因为document.location.pathname 也会删除 URL 的参数。您还需要使用:document.referrer.replace(/^[^:]+:\/\/[^/]+/, '').replace(/#.*/, '').replace(/\?.*/, '') 来移除referrer 的参数。【参考方案2】:

您可以从document.referrer 中提取路径名并使用new URL() 解析它,代码如下

const url = new URL(document.referrer)
url.pathname

确保为 IE 10 及更低版本填充 URL,使用 https://polyfill.io/v3/polyfill.js?features=URL 轻松完成

【讨论】:

/* Disable minification (remove '.min' from URL path) for more info */ 是单击链接时的错误,/* No polyfills found for current settings */ 是删除 min 时的错误。也许您打算发布其他内容? 感谢@AbandonedCart 告诉我,我已经更改了 Polyfill.io 链接 请注意,如果没有给出有效的 URL,URL 构造函数会抛出异常(就像没有设置引荐来源网址时的空字符串一样)。根据用例,提供基本 URL 可能是防止这种情况的好方法:new URL(document.referrer, "http://example.com/")【参考方案3】:

您可以使用document.referrer 获取引用文档的URL。是这个意思吗??

【讨论】:

不,我只想要路径,所以如果google.com/sdfhisdfsdf,我只想要 /sdfhisdfsdf 部分..lol 啊……我想你必须自己解析……也许正则表达式来拯救??

以上是关于Javascript 路径名引用者的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript window.location 未在请求标头中设置引用者

隐藏实际的链接引用者,如谷歌

通过引用者发送位置哈希

在 HTTP 请求中了解引用者/引用者的安全方法是啥?

jQuery

函数js