Javascript事件處理代碼的三種寫法

1.作爲HTML屬性值的事件處理程序


 HTML代碼
<input name="btn" type="button" id="btn" value="按鈕" οnclick="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="按鈕" οnclick="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卻又可以實在有點讓人費解。


<script language="javascript" src="/gg/contentad2.js" type="text/javascript"></script> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章