2007年03月3日

事件處理程式與物件的順序對FireFox很重要

在IE裡,從來也不用去管表單控制項(<INPUT...>)與事件程式(<script for=...  event=...>)的先後位置,<script-for-event>只做類似宣告的動作,在讀取網頁內容時不會去檢查 INPUT 產生與否,被觸發時才會執行。但此二者的前後位置對於FireFox而言卻是非常重要

以下皆為FireFox的特性:

1.先寫事件會產生錯誤;事件處理程式寫在控制項後面才是正確的:
<script>
  document.getElementById('btnOK').onclick = function() {  // has no properties錯誤
    alert("btnOK pressed!");
  };
</script>
....
<input  id='btnOK'  value='OK'>

2.最保險的寫法是把事件處理程式寫在window.onload的程式裡:
<script>
  window.onload = function() {
    document.getElementById('btnOK').onclick = function() {
      alert("btnOK pressed!");
    };
  };
</script>
....
<input  id='btnOK'  value='OK'>  // 控制項的位置無關緊要了

能這樣寫的原因是:window.onload必定在網頁全部都讀取完畢後才會被執行

2007/03/04修訂:為免混淆,將「物件」改成表單控制項或控制項。

##

 

Posted by emisjerry at 樂多Roodo! │00:19 │回應(0)引用(0)JavaScript
樂多分類:網路/3C 共同主題:Java/JavaScript 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/2795121