Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在单击之前或单击时更改链接?遗传算法跨域跟踪_Javascript_Google Analytics_Cross Domain - Fatal编程技术网

Javascript 在单击之前或单击时更改链接?遗传算法跨域跟踪

Javascript 在单击之前或单击时更改链接?遗传算法跨域跟踪,javascript,google-analytics,cross-domain,Javascript,Google Analytics,Cross Domain,我有一种情况,我必须用Google Analytics linkerParam手动装饰我整个网站的特定链接 这是将GA客户端ID从我的主站点传递到我的电子商务站点,以便维护会话 通常,这将通过自动链接器设置自动发生,但在我的站点和电子商务站点之间有一个服务器端重定向页面 该重定向页面将沿着GA客户端ID传递,但它从未被给予机会,因为它是我域上的页面,而不是外部域。自动链接器将无法在这种情况下工作,这就是为什么我需要手动做自己 我得到的解决方案基本上是在重定向页面的每个链接中添加一个javascr

我有一种情况,我必须用Google Analytics linkerParam手动装饰我整个网站的特定链接

这是将GA客户端ID从我的主站点传递到我的电子商务站点,以便维护会话

通常,这将通过自动链接器设置自动发生,但在我的站点和电子商务站点之间有一个服务器端重定向页面

该重定向页面将沿着GA客户端ID传递,但它从未被给予机会,因为它是我域上的页面,而不是外部域。自动链接器将无法在这种情况下工作,这就是为什么我需要手动做自己

我得到的解决方案基本上是在重定向页面的每个链接中添加一个javascript addEventListener

这个解决方案确实有效

当人们实际单击特定链接,然后用linkerParam装饰该链接时,使用addEventListener是否更好

还是在页面最初加载时简单地修改每个链接更好


谢谢

加载页面时,您可以更改所有链接

差不多

    var linksToChange = document.querySelectorAll('.theLinkClass');

   for (var item of linksToChange ) {
     item.href= "http://google.es";
   };

加载页面时,您可以更改所有链接

差不多

    var linksToChange = document.querySelectorAll('.theLinkClass');

   for (var item of linksToChange ) {
     item.href= "http://google.es";
   };

在我的自定义链接器中,我仅在单击is后装饰链接。我的理由(你可能觉得有说服力,也可能觉得没有说服力)是:

  • 如果用户将鼠标悬停在链接上,我不希望他看到附加的客户端id
  • 由于搜索引擎现在执行javascript,它们可能会索引修饰过的链接
  • 我只能在链接实际出现在页面上之后装饰链接(但我可以将回调函数附加到事后创建的链接),因此如果用户在DOM就绪之前离开,则不会装饰链接
  • 在一个有很多链接的页面上,所有这些链接实际上都需要一些时间和性能来完成我并不真正需要的事情(毕竟我只需要点击链接就可以了)

至于上面的评论(我认为他指的是DOM,而不是听起来阴险的“厄运”),因为用户在任何情况下都是在点击链接后离开页面的(你不会在页面链接中装饰),所以多个DOM操作不是问题。

在我的自定义链接器中,我只在点击is后装饰链接。我的理由(你可能觉得有说服力,也可能觉得没有说服力)是:

  • 如果用户将鼠标悬停在链接上,我不希望他看到附加的客户端id
  • 由于搜索引擎现在执行javascript,它们可能会索引修饰过的链接
  • 我只能在链接实际出现在页面上之后装饰链接(但我可以将回调函数附加到事后创建的链接),因此如果用户在DOM就绪之前离开,则不会装饰链接
  • 在一个有很多链接的页面上,所有这些链接实际上都需要一些时间和性能来完成我并不真正需要的事情(毕竟我只需要点击链接就可以了)

至于上面的评论(我认为他指的是DOM,而不是听起来阴险的“厄运”),因为用户在任何情况下都会在点击链接后离开页面(你不会在页面链接中装饰),所以多个DOM操作不是问题。

我应该更清楚一些。我知道怎么做。我想知道哪个更好?当有人单击(addEventListener)或在页面加载时修改href时?哦,对不起,最好的方法是在页面加载时修改每个链接,这样你就不必在每次调用事件的时候都修改厄运了。我知道怎么做。我想知道哪个更好?当有人单击(addEventListener)或在页面加载时修改href时?哦,对不起,最好的方法是在页面加载时修改每个链接,这样你就不必每次调用事件时都修改doom来从目标站点上的ga对象获取用户ID。如果两个站点都与Autolink链接,则应与源站点上的相同。我对目标站点没有太多控制权。这就是为什么我在把人发送到目标站点之前要装饰URL。哦,对不起。我错过了autolink不适用于您的部分,您也找到了解决方案。请尝试从目标站点上的ga对象获取用户ID。如果两个站点都与Autolink链接,则应与源站点上的相同。我对目标站点没有太多控制权。这就是为什么我在把人发送到目标站点之前要装饰URL。哦,对不起。我错过了autolink不适合您的部分,您也找到了解决方案。