结合两个javascript onclick事件

时间:2012-01-26 16:53:55

标签: javascript

我有一个调用window.location.href事件的输入按钮,并且还希望将google analytics事件跟踪添加到同一个按钮...

我如何将这两个事件合并为一个声明?

<input type="button" value="Learn More!"  onclick="window.location.href='site1'" />

和这个事件:

onclick="_gaq.push(['_trackPageview', '/externalsite/site1']);"

6 个答案:

答案 0 :(得分:6)

你可以使用jQuery。

但快速解决方法是将它们组合起来:

<input type="button" value="Learn More!" onclick="_gaq.push(['_trackPageview', '/externalsite/site1']); window.location.href='site1'" />

语句用分号分隔。

答案 1 :(得分:3)

连接两者,并将它们一起添加:

<input type="button" value="Learn More!"
       onclick="_gaq.push(['_trackPageview', '/externalsite/site1']);
                window.location.href='site1';" />
<!-- Within HTML tags, newlines don't matter. For readability, I have split the 
      attributes over three lines-->

请注意,订单很重要。如果您首先使用window.location.href分配,则可以忽略第二部分,因为页面会卸载。

答案 2 :(得分:3)

<script>
function handleClick(){
  _gaq.push(['_trackPageview', '/externalsite/site1']);
  window.location.href='site1'
}
</script>
<input type="button" value="Learn More!"  onclick="handleClick()" />

答案 3 :(得分:2)

<input type="button" value="Learn More!"  onclick="_gaq.push(['_trackPageview', '/externalsite/site1']); window.location.href='site1'" />

答案 4 :(得分:1)

您应该尝试将JavaScript移出元素,如下所示:

<强> HTML

<input type="button" value="Learn More!" id="myBtn" />

<强>的JavaScript

(function(d, w) {
    var btn = d.getElementById('myBtn');
    btn.onclick = function() {
        _gaq.push(['_trackPageview', '/externalsite/site1']);
        w.location.href = 'site1';
    };
}(document, window));

尽可能使用Unobtrusive JavaScript总是更好的主意。你可以在这里阅读更多内容:

答案 5 :(得分:0)

您可以使用分号组合语句:

<input type="button" value="Learn More!"  onclick="window.location.href='site1'" />

在您的情况下,请确保将重定向调用为最后一个操作,可能是您在离开页面时终止执行。