赞
踩
TP 钱包无法通过分享链接无法绑定团队邀请关系怎么办?
分析发现,造成这个问题的原因是TP钱包会自动修改你的分享链接,添加 UTM 来源参数。如何避免 UTM 来源参数影响?或者说怎么修改代码来忽略这些参数?
举个例子:
带utm参数的链接:https://xxx.com/?utm_source=tokenpocket#/?code=12345
不带utm参数的链接:https://xxx.com/#/?code=12345
其实,可以使用JavaScript代码来去掉URL中的utm参数,具体步骤如下:
解析URL对象:首先,我们需要使用new URL(url)
方法解析URL对象。这个方法可以把一个URL字符串解析成一个URL对象,我们可以从这个对象中获取到URL的各个部分。
获取查询参数:URL对象有一个searchParams
属性,这个属性是一个URLSearchParams对象,用于获取URL中的查询参数。我们需要从这个对象中获取所有的参数。
删除utm参数:我们可以使用searchParams.delete(key)
方法删除查询参数中所有以"utm_"开头的参数。其中,key
是参数名,表示要删除的参数名。
重新构建URL:最后,我们使用toString()
方法重新构建URL对象,并返回这个新的URL字符串。
下面是完整的JavaScript代码,我添加了注释来帮助理解:
- function removeUtmParamsFromUrl(url) {
- // 创建URL对象
- var urlObject = new URL(url);
-
- // 获取查询参数
- var searchParams = urlObject.searchParams;
-
- // 遍历所有参数,删除以"utm_"开头的参数
- for (var key of searchParams.keys()) {
- if (key.startsWith('utm_')) {
- searchParams.delete(key);
- }
- }
-
- // 重新构建URL,并返回
- return urlObject.toString();
- }
使用时,直接调用这个函数即可,例如:
- var urlWithUtm = "https://xxx.com/?utm_source=tokenpocket#/?code=12345";
- var urlWithoutUtm = removeUtmParamsFromUrl(urlWithUtm);
- console.log(urlWithoutUtm); // 输出:https://xxx.com/#/?code=12345
以上代码会将urlWithUtm
中的utm参数去掉,生成新的URL字符串urlWithoutUtm
,并打印输出。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。