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