2012年9月4日 星期二

通用的 JavaScript 事件註冊判斷程式

今天星星老師在介紹HTML5內容時,恰好有提到註冊JavaScript的事件,然而現今瀏覽器有很多,而每個不同瀏覽器都支援不同的JavaScript運作機制,不見得每一個都相同,因此假設想要讓所有瀏覽器去判斷是否支援某一個屬性或功能,且盡量可以支援通用的設計方式,以下有一段事件註冊判斷程式,可以用來註冊事件!!

以下這段Scrip可用來判斷瀏覽器是否支援contentEditable 這個屬性功能,判斷是否IE支援,也有支援舊版本瀏覽器的語法!

目前大部分的瀏覽器都支援:window.addEventListener,若是IE不支援的話,那麼可以使用window.attachEvent,更舊的版本則是使用:window.onload ,請參考以下程式碼:

<script>
  if (window.addEventListener) {
    window.addEventListener("load", init);
  }
  else if (window.attachEvent) {
    //only for IE
    window.attachEvent("onload", init);
  }
  else {
    window.onload = init;
  }

  function init() {
    if (document.createElement("span").contentEditable != undefined) {
      document.getElementById("status").innerHTML = "This browser is support.";
    }
    else {
      document.getElementById("status").innerHTML = "This browser is not support.";
    }
  }
</script>