从 URL 字符串 Javascript 中删除电子邮件

remove email from URL string Javascript

我的意图

我的意图是不让 Facebook 像素接收主要目标 URL 字符串中提到的电子邮件。我想通过在触发 Facebook Pixel 之前在 Google 标签管理器中使用 Custom Javascript 来解决这个问题。

我的问题

我正在尝试从通过 Facebook Pixel 提供给 Facebook 的 URL 中删除电子邮件部分。我不是开发人员,Facebook Pixel 是通过 GTM 使用的。我可以看到上面的字符串在例如位置触发。 href,document.location.href 和 window.location.href

我的问题

URL 我想修改的字符串(注意我已经从 URL 中删除了敏感部分):

https://booking.company.com/#/no/payment/accepted?postype=ssl&currencynumber=578&authkey=4fe55a1aeb572cc6a252513f8f16d3ac&accepturl=https:%2F%2Fbooking.company.com%2Fbservice%2Fno%2FPaymentReturn%2FRedirect%2Faccepted&amount=5900&decorator=responsive&orderid=dontmindme&merchant=dontmindme&ordertext=Booking%20nr:%209689228&flexwin_cardlogosize=1&statuscode=12&transact=dontmindme&cardnomask=dontmindme&cardexpdate=dontmindme&capturenow=1&currency=578&md5key=022b61cc5d7d3937e2db03b91aa51559&callbackurl=https:%2F%2Fjava-prod-flc.carus.com%2Fcardibsd2%2FDibsD2%2FPayResp&currencyalpha=NOK&lang=no&paytype=VISA&cancelurl=https:%2F%2Fbooking.company.com%2Fbservice%2Fno%2FPaymentReturn%2FRedirect%2Fcancelled&email=remove@this.com

代码

function removeEmail(url, window.location.href) {

        var urlparts = url.split('&Email');{

        var prefix = encodeURIComponent(window.location.href) + '&Email';
        var pars = urlparts[1].split(/[&;]/g);


        return urlparts[0];
    }
    return url;
}

编辑 (20.02.2020):
- 根据反馈做了一些调整
- 添加代码(代码基于此问题:How can I delete a query string parameter in JavaScript?

我知道最好的解决方案是在后端修复它,但在后端修复需要很长时间,因此我正在寻找一个临时解决方案以符合 GDPR 等.

window.location.hash = window.location.hash.replace(/&email=[^&]+/, '')) 应该可以解决问题。

这会将 URL 散列值中的 &email=… 替换为空字符串,并将其指定为新散列。

只要这发生在 Facebook 像素被初始化之前,它就应该让它现在读取 URL 而没有电子邮件值。