画像のサムネイルを表示して、サムネイルをクリックすると拡大するようなシーンでよく利用されている javascript のライブラリに smoothbox があります。この smoothbox が IE6,7 で動かなかったので簡易なパッチを作りました。

問題は smoothbox が依存するライブラリである mootools にあって

  • window.getWidth() が IE で正しい値を返却してこない
  • window.getHeight() が IE で正しい値を返却してこない

というバグ?があるため、smoothbox が正常動作できていないことがわかりました。

対策として smoothbox.js 内のこれらの関数を置き換える以下の関数を定義し、window.getWidth() を window_width() に、window.getHeight() を window_height() に置換することで動作するようになりました。

function window_width() {
  return (window.ie) ? document.body.offsetWidth : window.getWidth();
}
function window_height() {
  return (window.ie) ? document.body.offsetHeight : window.getHeight();
}

参考になれば幸いです。

JavaScript 第5版

JavaScript 第5版