2012-03-20 1 views
0
<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», кнопки снова работают, но больше не регистрируются в компании отслеживания. Поэтому мой вопрос заключается в том, как сохранить «return false», но заставить их работать как ссылки.Tracking OnClick ссылки не работают, как гиперссылок

+3

Возможно, вы захотите принять некоторые ответы на вопросы, которые вы отправили, - вы получите больше интереса от членов, отвечая на ваши новые вопросы , –

+0

Вы проверили, правильно ли загружен файл javascript, определяющий функцию 'kenshoo_conv()'? – Moses

ответ

0

Прежде всего. Если у вас есть javascript, встроенный в ваш html (не рекомендуется), вам не нужно иметь объявление javascript: в событиях (onclick в вашем примере). Было бы гораздо лучше использовать методы dom el.addEventListener('click', kenshoo_conv, false).

Если вам нужно запустить функцию до выгрузки страницы, вам понадобится некоторый контроль над этой функцией, чтобы знать, когда она успешно активировала отслеживание becon.

После того, как вы ваш onclick прилагается, вы можете использовать аргумент события (который передается функции), чтобы остановить событие от стрельбы, evt.preventDefault(), делать все, что вам нужно сделать, затем установите location.href, когда ваш трекер Becon имеет успешно уволен.

Все вверх ваш код может выглядеть примерно так (предполагается, что все нормализуется, так что не в 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 вызывает обратный вызов для изменения местоположения в пункт назначения ссылки. Таким образом, вам придется запускать эту функцию после успешного запуска трекера. Если вы этого не знаете, вы можете сделать это после тайм-аута (не идеально)

Смежные вопросы