跟踪onClick链接不起超链接的作用

时间:2012-03-20 21:24:38

标签: javascript hyperlink onclick tracking

<li><a href="konkurranseregler.html" onclick="javascript:kenshoo_conv('rules','0','','sem','NOK');return false;">KONKURRANSEREGLER</a></li>

<div class ="contactButton"> <a href="http://www.altavdrikke.no/#top" onclick="javascript:kenshoo_conv('kontakt','0','','sem','NOK');return false;"><span>Kontakta Oss</span></a></div> 

这两个按钮不能用作链接,请参阅:http://www.undergroundblc.co.uk/chaqwa/即您点击但没有任何反应。如果您将“return false”更改为“return true”,则按钮会再次起作用,但不再向跟踪公司注册。所以我的问题是我如何保持'返回错误',然后让它们作为链接工作。

1 个答案:

答案 0 :(得分:0)

首先。如果您必须在html中嵌入javascript(不推荐),则不需要在事件中使用javascript:声明(在您的示例中为onclick)。使用dom方法el.addEventListener('click', kenshoo_conv, false)会好得多。

如果你需要在页面卸载之前触发一个函数,你需要对该函数进行一些控制,以便知道它何时成功触发了跟踪becon。

一旦你附加了onclick,就可以使用event参数(传递给函数)来阻止事件被触发,evt.preventDefault(),做你需要做的一切,然后设置当你的跟踪器becon成功解雇时location.href

你的所有代码看起来都像这样(假设所有内容都已规范化,所以不在IE中):

HTML

<a href="konkurranseregler.html" data-args="rules,0,,sem,NOK"   
   class="kenshoo_conv_link">KONKURRANSEREGLER</a>

JAVSCRIPT

function kenshoo_conv(evt) {
    var dest = this.href,
        args = this.getAttribute('data-args').split(",");

    evt.preventDefault();

    //add success event to arguments
    args.push(function () {
       location.href = dest;
    });

    //fire the tracking function
    trackMe.apply(this, args);
}

var kenshoo_conv_links = document.getElementsByClassName("kenshoo_conv_link");
for (var i = 0, il = kenshoo_conv_links.length; i < il; i += 1) {
    kenshoo_conv_links[i].addEventListener('click', kenshoo_conv, false);
}

这将使trackMe函数中的最后一个参数成为回调,以将位置更改为链接的目标。因此,一旦跟踪器成功触发,您将必须触发该功能。如果你不知道,你可以在超时后(非理想)