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 路径名引用者的主要内容,如果未能解决你的问题,请参考以下文章