Javascript 如何通过跨域会话跟踪正确添加url参数?

Javascript 如何通过跨域会话跟踪正确添加url参数?,javascript,cross-domain,session-cookies,url-parameters,Javascript,Cross Domain,Session Cookies,Url Parameters,使用GTM进行跨域跟踪 在特定页面上,单击按钮将用户从域发送到域b。 我想在目标链接中发送一个值(域名的引用)作为url参数 然后我将这个参数值检索到domainB上的数据层中 然而,每次点击按钮都会被Google Analytics跨域跟踪覆盖 关于域名: 按钮链接目标= 我要传递的参数=referer Onclick: 预期结果: 实际结果= 以下是我尝试过的一些代码 单击,更新链接目标: <script> function urlBouton () { var ne

使用GTM进行跨域跟踪

在特定页面上,单击按钮将用户从域发送到域b。

我想在目标链接中发送一个值(域名的引用)作为url参数

然后我将这个参数值检索到domainB上的数据层中


然而,每次点击按钮都会被Google Analytics跨域跟踪覆盖

关于域名:

  • 按钮链接目标=
  • 我要传递的参数=referer
Onclick:

  • 预期结果:

  • 实际结果=


以下是我尝试过的一些代码

单击,更新链接目标:

<script>
function urlBouton () {
var newUrl= "https://domainB/page?referrer=google";
document.getElementById("btn").onclick = function() {changeUrl()};

function changeUrl() {
  document.getElementById("btn").href = newUrl;
}
  }
  </script>

函数urlbooton(){
var newUrl=”https://domainB/page?referrer=google";
document.getElementById(“btn”).onclick=function(){changeUrl()};
函数changeUrl(){
document.getElementById(“btn”).href=newUrl;
}
}
当页面打开(DOM就绪)时,更改按钮链接:

<script>
var newUrl = "https://domainB/page?referrer=google";
document.getElementById("btn").href.setAttribute("href", newUrl);
</script>

var newUrl=”https://domainB/page?referrer=google";
document.getElementById(“btn”).href.setAttribute(“href”,newUrl);

JS控制台显示新更新的链接。。。但在浏览时,它并没有按预期显示。

我不知道谷歌分析的内部结构,所以如果有人知道,他们可能知道一些我不知道的东西。然而,我非常了解浏览器机制,由于安全限制,您所做的是不可能的。一种方法是使用消息传递,假设两个域(窗口)将在同一浏览器会话中运行。但是,这有点限制,因为在发布消息之前,第二个窗口必须打开并侦听传入消息

    window.addEventListener('message', function _handler(event) {
    // Code for handling the message

    // This will automatically remove the listener after receiving one message.
    // Good for when you send only one message and don't want the listener lingering and eating up memory.
    window.removeEventListener('message', _handler);
});

如果您要处理的是一种无法在同一浏览器中运行的情况,那么您将以简单的后端服务器/服务的形式设置某种“共享内存”。

感谢您提供的见解。。我会尝试一下,但我不确定如何实现最后一句话“第二个窗口必须打开并在发布消息之前侦听传入消息”。这里有一个简单的想法:在窗口a(无论是哪个域),在
onClick()
函数期间,注册一个事件侦听器以等待传入事件,执行onclick和重定向,这将打开新窗口,开始将参数提交到该窗口,每2秒循环一次postMessage。在窗口B上,注册onload listener,当它被触发时,注册一个事件侦听器以接收来自窗口A的postMessage,一旦收到,处理/存储参数并发送回确认,取消注册消息事件侦听器。收到确认后,返回注销状态。