从 Url Javascript 中删除关联查询字符串

Remove Affiliate Query String from Url Javascript

在我的购物车中,我创建了会员 url,如下所示:

http://mysite.local/phones-and-pdas/iphone?z=5509d173cffeb

我想使用 history.pushState 删除以 ?.

开头的查询字符串

我试过使用 slice()split() 但这似乎也会影响其他 url,即使它们不包含 ?z=

function trackingLink() {
    var href = window.location.href;
    var url  = href.slice(0, href.indexOf('?z='));

    history.pushState(null, null, url);
}

例如当我去:

http://mysite.local/account/dashboard

地址url修改为:

http://mysite.local/account/dashboar

请注意,上述代码在联属网络营销 link 上运行完美。

我确定这是一个简单的调整,但我在搜索时找不到具体的答案。

首先添加一个检查以查看 ?z= 是否存在:

var href = window.location.href;
if(href.indexOf('?z=')) {
    var url  = href.slice(0, href.indexOf('?z='));
    history.pushState(null, null, url);
}

看看split instead of slice

href.split('?')[0] 应该可以。

function trackingLink() {
var href = window.location.href;
var url  = href.split('?z=');
history.pushState(null, null, url[0]);
}

只是详细说明 +Dave 的回答:

var href = window.location.href;
var url = href.split("?")[0];
history.pushState(null, document.title, url);