Javascript 嵌入跟踪在某些DOM元素上单击的代码(问题在于重定向的链接/按钮)

Javascript 嵌入跟踪在某些DOM元素上单击的代码(问题在于重定向的链接/按钮),javascript,dom-events,Javascript,Dom Events,假设我有一个嵌入代码和一个脚本,该脚本将事件添加到某些DOM元素中。这些通常是链接或按钮。一旦调用了一个事件,我就会调用ajax来记录这个单击事件 问题来自重定向的链接。因此,将onclick事件添加到 <a href="http://google.com">link</a> 可能无法工作,因为页面将在通过ajax调用记录事件之前重定向 显然,像谷歌分析(Google Analytics)和Omniture这样的网站在跟踪转化率时会这样做。有什么好办法解决这个问题吗

假设我有一个嵌入代码和一个脚本,该脚本将事件添加到某些DOM元素中。这些通常是链接或按钮。一旦调用了一个事件,我就会调用ajax来记录这个单击事件

问题来自重定向的链接。因此,将onclick事件添加到

<a href="http://google.com">link</a>

可能无法工作,因为页面将在通过ajax调用记录事件之前重定向

显然,像谷歌分析(Google Analytics)和Omniture这样的网站在跟踪转化率时会这样做。有什么好办法解决这个问题吗

此外,假设这一切都与嵌入代码一起工作(就像Google Analytics一样),因此我们不能对html代码进行太多修改


如果ajax调用失败,页面仍然需要重定向

劫持单击,阻止默认值,然后在回调上触发重定向

var-link=''; $(“a”)。单击(功能(e){ e、 预防默认值(); link=$(this.attr(“href”); $.ajax(..函数(){ window.location=链接; })
});

是的,这可能就是我们最终要做的事情——但是还需要检测href是javascript:function()还是javascript:void(0)。只是想知道是否有更好的方法。嵌入代码将出现在我们用户的网站上,我不喜欢与其他网站的HTML混淆。这是一个老问题,但为了让新读者受益,理论上可以测试链接是否以“javascript:”开头,并运行eval()而不是指定window.location