1.作為HTML屬性值的事件處理程序
HTML代碼
<input name="btn" type="button" id="btn" value="按鈕" onclick="alert('mzwu.com');" />
2.作為JavaScript屬性的事件處理程序
HTML代碼
<input name="btn" type="button" id="btn" value="按鈕" />
<script language="javascript">
document.getElementById("btn").onclick = function(){alert("mzwu.com");}
</script>
說明:可能受第一種方法的誤導,你會覺得應該寫成:document.getElementById("btn").onclick() = "alert('mzwu.com');",這樣寫是錯誤的!其實第一種方法隱式的創建了一個函數,使用下邊代碼可以說明這一點,因為它檢測出HTML屬性值其實是一個函數:
HTML代碼
<input name="btn" type="button" id="btn" value="按鈕" onclick="alert(typeof(this.onclick));" />
上邊是用直接量來創建函數,改成用function()語句的寫法:
HTML代碼
<input name="btn" type="button" id="btn" value="按鈕" />
<script language="javascript">
function e()
{
alert("mzwu.com");
}
document.getElementById("btn").onclick = e;
</script>
由此我們可引申出第三種方法。
3.第三種方法
HTML代碼
<input name="btn" type="button" id="btn" value="按鈕" />
<script language="javascript">
function document.all.btn.onclick()
{
alert("mzwu.com");
}
</script>
說明:諸如此類的方法還有function document.onclick(){},但這種方法在IE、FF中測試只有IE下可行,再改成function document.getElementById("btn").onclick(){}在IE、FF下都不行了,提示缺少標識符,其實這也不難解釋,因為JavaScript標識符中本來就不允許出現點號,用document.getElementById("btn").onclick做標識符顯然是錯誤的,但document.all.btn.onclick卻又可以實在有點讓人費解。