如何检查引荐来源网址是否具有网址参数?

时间:2020-09-09 09:12:47

标签: javascript

我想检查我的引荐来源网址中是否包含参数。因为基于此,我想将按钮的网址更改为其他页面。

我现在所拥有的:

var referrer = document.referrer;
var referrerparams = referrer.search;

if (referrerparams) {
 > 'script to change urlbutton.href'
}

所以我想我可以同时使用document.referrer和window.location.search来查看引荐来源网址中是否包含参数。独立地这两个工作正常,但不能一起工作。我在控制台中得到以下内容:ƒ search() { [native code] }

有人知道如何检查引荐来源网址是否具有参数吗?甚至什么参数都没有关系,只要它们退出即可。

1 个答案:

答案 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