IE9でalphafilter.jsをそのまま使う場合のコード変更

僕はIEにPNG画像や背景を適用させるときには、「alphafilter.js」を利用しています。

理由としては、

  • ソースやhead部分が比較的キレイなまま利用できる
  • ほかのPNG適用ライブラリに加えて挙動が安定している

この2つです。

ただ、IE9が出たことによってもともと配布されていたコードではIE9には対応されておらず、少しの手直しが必要です。
修正する部分はalphafilter.jsの14行目。

【修正前】

if (navigator.userAgent.indexOf("MSIE")!= -1 && navigator.appVersion.indexOf("6.0")!= -1) {//for old ie
 var elements = getElementsByClassName("alphafilter");
 for (var i=0; i<elements.length; i++) {

この最初の1行部分を以下に変えて上げれば正常に動くようになります。

【修正後】

if (navigator.userAgent.match(/MSIE\s*6\.0;\s*/i)) {//for old ie
 var elements = getElementsByClassName("alphafilter");
 for (var i=0; i<elements.length; i++) {

古いブラウザの判定文でIE9が漏れていたのが原因なのではないかと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です