我有一个情况,我必须使用Google Analytics(分析)LinkerParam手动装饰整个网站上的特定链接。
这是将GA客户端ID从我的主站点传递到我的电子商务网站以维护会话。
通常,这将通过自动链接器设置自动发生,但是在我的网站和电子商务网站之间有一个服务器端重定向页面。
重定向页面将沿GA客户端ID传递,但是从未有机会,因为它是我域上的页面,而不是外部域上的页面。汽车链接器在这种情况下无法使用,这就是为什么我需要自己手动执行。
我得到的解决方案基本上是将JavaScript AddeventListener添加到重定向页面的每个链接。
该解决方案确实有效。
最好使用AddeventListener,因为人们实际单击特定链接才能与LinkerParam进行装饰?
或者最好在页面最初加载时简单地修改每个链接?
谢谢
在我的自定义链接器中,我仅在单击后才装饰链接。我的理由(您可能会说服或可能不会令人信服)是:
- 如果用户徘徊在链接上,我不希望他看到附加的客户ID
- 由于搜索引擎现在执行JavaScript,因此他们可能会索引装饰链接
- 我只能在网页上实际上装饰链接(但我可以将回调函数附加到事实后创建的链接),因此,如果用户在DOM准备之前离开DOM,则链接未装饰
- 在一个带有大量链接装饰的页面上,所有这些链接实际上需要一些时间和表现,这是我真正不需要的东西(毕竟我只需要装饰的点击链接)
关于上面的iThans评论(我认为他是指DOM而不是险恶的声音" doom"),因为在单击链接后,用户在任何情况下都离开了页面(您不会装饰页面内的链接),因此多个DOM操作不是问题。
您可以在页面加载时更改所有链接
之类的东西 var linksToChange = document.querySelectorAll('.theLinkClass');
for (var item of linksToChange ) {
item.href= "http://google.es";
};