
Lightbox系の中でもハイクオリティで知られるLightviewですが、IE8でprototype.jsまわりで下記の内容のエラーが出てしまいます。
メッセージ: 'undefined' は Null またはオブジェクトではありません。
ライン: 214
文字: 7
コード: 0
URI: http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js
先ほど某サイトでこの現象が起きていてあわてて対処しました。問題の根底はPrototypeのバージョンなんですが、検索していたらLightviewユーザー観点での日本語記事が(たぶん)ほぼなかったので掲載してみます。同じ状況で困った方がいたらご参考までに。
解決方法
GoogleでなくPrototype本家サイトのPrototype 1.6.1 RC2(http://www.prototypejs.org/assets/2009/3/27/prototype.js)を読み込む
詳細
Lightviewの公式サイトでは、Google AJAX Libraries API(http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js)の使用を推奨していますが、この1.6.0.3版は現状IE8へのバグFixがされていません。Google側でいずれ最新版を導入するでしょうけど、1.6.0.3版はどうやら1年以上更新されていないっぽいので先に対処したほうがよいと思われます。
既知の問題点
IE8で初回アクセス時に「このページはJAVAを使用しています」というアラートメッセージが表示される
これってRC2ではJAVA使って回避したのでしょうか?中身のソースまでは見てないのでちょっとわかりません。このアラートメッセージの回避方法もあわせて調査しないとですね。Prototype 1.6.1が正式リリースしてくれればたぶん直る気もしますが。
おまけ
この件で調べていたら、Lightview作者Nick Stakenburgさんの公式フォーラムで、ご本人とゲストユーザーとの面白いやり取りを見つけました。
原文
http://www.nickstakenburg.com/forum/comments.php?DiscussionID=1007
翻訳(時間かけてやります)