2012-01-26 60 views
0

我有一個輸入按鈕調用window.location.href事件,也想加入谷歌分析事件追蹤到同一個按鈕...合併兩個JavaScript的onclick事件

我將如何結合這兩個事件變成一個聲明?

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

與此事件:

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

正是在這種情況下確定,但要注意不能增加太多的內嵌代碼到HTML元素的;事情會變得混亂。 –

回答

6

你可以使用jQuery。

但速戰速決是隻將它們組合起來:

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

陳述是用分號分隔。

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作業,則可以忽略第二部分,因爲該頁面已卸載。

+0

@aCodeSmith我很欣賞很好的編輯,但是你不應該編輯答案只是爲了添加一個非關鍵的空白字符。分號之後的空格是一個偏好問題,所以我建議以後不要發送這種編輯。 –

+1

我想我點了錯誤的答案。我想將這個空間添加到我的代碼中,而不是你的代碼中。哎呀。 :P – aCodeSmith

+0

@aCodeSmith沒問題,我們是人類;) –

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

這種方式更容易管理。最好讓onclick包含兩個不同的項目。更好的辦法是使用juery事件。 – aCodeSmith

0

您可以用分號組合語句:

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

在你的情況,請確保調用重定向作爲最後的操作,也可能是當你是執行被終止離開頁面。

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)); 

它始終是一個好主意,用盡可能不引人注意的JavaScript。你可以在這裏閱讀更多: