【问题标题】:remove email from URL string Javascript从 URL 字符串 Javascript 中删除电子邮件
【发布时间】:2020-06-04 12:43:15
【问题描述】:

我的意图

我的意图是不让 Facebook 像素接收作为主要目标的 URL 字符串中提到的电子邮件。我想通过在 Facebook Pixel 被触发之前在谷歌标签管理器中使用自定义 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;
}

编辑(2020 年 2 月 20 日):
- 根据反馈进行了一些调整
- 添加代码(代码基于此问题:How can I delete a query string parameter in JavaScript?

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

【问题讨论】:

  • 请阅读How to Ask。您说您正在尝试 - 我们希望看看您的实际尝试。
  • @CBroe;感谢您的反馈。我很认真,我对结构做了一些调整+添加了代码。
  • 如果 URL 中的 email 是小写的,那么您也必须使用小写拼写进行拆分。并且将encodeURIComponent 应用于整个 URL 没有什么意义,这可能会使大部分内容无效。
  • window.location.hash 开始操作可能更有意义。
  • 经过一些实际测试后,解决方案按预期工作。我没有删除或编辑任何内容。我所做的是 1. 确保我有一个单独的自定义 HTML 标记,其中 可以在 FB Pixel 和 Tag Sequencing 之前触发 .. 然后 2.fire FB 像素,然后电子邮件将在像素触发之前被删除,因此 facebook 不知道它存在并且不会在他们的系统中注册它。感谢您对一个真正想知道编码但不知道如何编码的人的耐心。虽然我明白其中的逻辑。那么..我如何将其标记为已解决?

标签: javascript facebook google-tag-manager facebook-pixel


【解决方案1】:

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

这会将 URL 哈希值中的 &email=… 替换为空字符串,并将其分配为新的哈希值。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 2021-08-13
    • 2020-01-12
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多