2011年7月27日 星期三

【隨筆】把網站調整到適合IE9

  1. IE9 的 getElementsByTagName 有bug,對於h1/h2/h3和*會throw JS Error:
    Fix Log:
    • Jquery (1.5或以下) 要更新 (1.6或以上)
    • 其他JS避免使用document.getElementsByTagName("*"),考慮改寫至JQuery

  2. swfupload 的 code太舊,加入flash插件的 object tag 沒有classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",所以對於要求比較嚴謹的IE9會throw System Error:
    Fix Log:
    • 修改swfupload.js,把SWFUpload.prototype.getFlashHTML=... 改成如下 (假定使用JQuery,沒有者請另寫檢查IE的JS以取代$.browser.msie):

      SWFUpload.prototype.getFlashHTML = function () {
      return ['
      ( $.browser.msie )?' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"':' type="application/x-shockwave-flash"',
      ' data="', this.settings.flash_url, '" ',
      ' width="', this.settings.button_width, '" height="', this.settings.button_height, '" class="swfupload">',
      '',
      '',
      '',
      '',
      '',
      '',
      '
      '].join("");

      };