IE8+prototype.js+scriptaculous.js+jquery.js=エラー
prototype.js→scriptaculous.js→jquery.jsという順番で読み込む場合、IE8(8以外のIEでは試してない)でエラーが発生する問題。
- prototype.js: 1.6.1
- scriptaculous.js: 1.8.2
- jquery.js: 1.4.4
エラーが発生する箇所は、prototype.jsのgetElementsByClassNameの中。$(element)を実行する箇所で、$がjQueryになってしまっている事が問題。
jquery.jsの中で、window.$にjQueryをセットした後にdiv.getElementsByClassNameを実行する箇所が有る。グローバルの$がjQueryに置き換わっているため、prototype.jsで定義されたgetElementsByClassNameの中でjQueryが使われてしまう。jQuery.noConflictで_$から戻そうにも、jquery.jsのロード中なので外からは手が出せない(自分が知らないだけで方法があるだろうか)。
困った。