我想检查我的引荐来源网址中是否包含参数。因为基于此,我想将按钮的网址更改为其他页面。
我现在所拥有的:
var referrer = document.referrer;
var referrerparams = referrer.search;
if (referrerparams) {
> 'script to change urlbutton.href'
}
所以我想我可以同时使用document.referrer和window.location.search来查看引荐来源网址中是否包含参数。独立地这两个工作正常,但不能一起工作。我在控制台中得到以下内容:ƒ search() { [native code] }
。
有人知道如何检查引荐来源网址是否具有参数吗?甚至什么参数都没有关系,只要它们退出即可。
答案 0 :(得分:1)
您可以从引荐来源网址创建一个URL
对象,并检查其search
属性。
const referrerQueryParamStr = new URL(document.referrer).search
if (referrerQueryParamStr) {
// change urlbutton.href
}
如果您希望单个键值对采用易于使用的格式,则可以使用searchParams
属性:
const referrerQueryParams = new URL(document.referrer).searchParams
for (const [key, val] of referrerQueryParams) {
console.log({ key, val })
}
我在控制台中得到以下内容:
ƒ search() { [native code] }
。
这是因为document.referrer
只是转换之前的字符串。您实际上要记录的是String#search
函数。
typeof document.referrer // string
typeof document.referrer.search // function
document.referrer.search === String.prototype.search // true