<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”,则按钮会再次起作用,但不再向跟踪公司注册。所以我的问题是我如何保持'返回错误',然后让它们作为链接工作。
答案 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函数中的最后一个参数成为回调,以将位置更改为链接的目标。因此,一旦跟踪器成功触发,您将必须触发该功能。如果你不知道,你可以在超时后(非理想)