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



我的意图

我的意图是不让Facebook像素接收URL字符串中提到的电子邮件,这是我的主要目标。例如,我想在Facebook像素被解雇之前,在谷歌标签管理器中使用自定义Javascript来解决这个问题。

我的问题

我正试图从通过Facebook Pixel提供给Facebook的URL中删除电子邮件部分。我不是开发者,Facebook像素是通过GTM使用的。我可以看到上面的字符串在例如location上启动。href、document.location.href和window.location.hhref

我的问题

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

https://booking.company.com/#/no/payment/accepted?postype=ssl&currencynumber=578&authkey=4fe55a1aeb572cc6a22513f8f16d3ac&accepturl=https://%2F%2Booking.company.com%2Bservice%2Fno%2PaymentReturn%2FRedirect%2Accepted&数量=5900&decorator=响应&orderid=dontmindme&商人=dontmindme&ordertext=预订%20nr:%209689228&flexwin_cardlogosize=1&statuscode=12&transaction=dontmindme&cardnomask=dontmindme&cardexpdate=dontmindme&capturenow=1&货币=578&md5key=022b61cc5d7d3937e2db03b91aa51559&callbackurl=https:%2F%2Fjava prod flc.carus.com%2Cardibsd2%2FDibsD2%2PayResp&currencyalpha=NOK&lang=no&paytype=VISA&cancelurl=https://%2F%2Booking.company.com%2Bservice%2Fno%2FPaymentReturn%2FRedirect%2Fcancelled&电子邮件=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;
}

EDIT(20.02.2020(:
-根据反馈进行了一些调整
-添加了代码(代码基于以下问题:如何删除JavaScript中的查询字符串参数?(

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

window.location.hash = window.location.hash.replace(/&email=[^&]+/, ''))应该能做到这一点。

这将用一个空字符串替换URL哈希值中的&email=…,并将其指定为新的哈希。

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

最新更新