lightviewをIE7、IE8で使った時のエラーの対処法

いやですね、JavaScriptのエラー。

実行しましたが、ページでエラーが発生しました。


IE7、IE8でlightviewを使った時に出るエラーの対処法をメモしておきます。



エラー詳細はこちら。

<p>
Web ページ エラーの詳細

ユーザー エージェント: Mozilla/4.0
 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322;
 .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
タイムスタンプ: Mon, 5 Jul 2010 13:34:01 UTC


メッセージ: 引数が無効です。
ライン: 4458
文字: 9
コード: 0
URI: http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js


prototype.jsで出るので、バージョンを1.6.0.3から1.6.1.0(2009/09/01リリース)に上げてみましたが、症状は変わらずでした(1.6.1 RC2で解決したという情報もあったのですが、正式リリースでは症状でますねぇ……)


原因はこれです。

Lightviewのサイトで「Install」の項目を見ると、「文章型宣言はXHTML 1.0 Transitionalにしてください」とあります。対してMicrosoftのサポートでは、VMLを期待通りに表示するなら「厳密な標準準拠モードを使用しないでください」「文章型宣言を削除してください」とあります。

LightviewでIE7以降のバージョンで角丸が表示されません - msn相談箱より引用


角丸だけでなくJavaScriptのエラーもでるのですが、文章型宣言だけでは解決しませんでした。いずれにせよ、標準準拠モードではなく互換モードで動作させる必要があります。



IE8でうごかない!ので、IE8のモードスイッチを切り替えます。

を内に記述すればいけると思われます。

light view - V.I.P.Sより引用


う〜ん、対処療法はいやなので、lightview以外のライブラリ探したくなりますね(^^; prototype.jsとお別れしようかな?!