(コガワ・マサヤ)Lightbox系のライブラリとして任意のJavaScriptライブラリを使ってもOKなShadowbox.js。非常に便利でおすすめ。私はprototype.jsをよく使うのでそれと併せています。jQuery対応のものばかりで肩身が狭いですが。Shadowbox.jsの仕様として、下記のようにheadタグ内のscriptタグで初期化する必要があります。"html"]});このためAjax.Updaterなどで部分的に反映された要素はShadowbox.jsのイベントハンドラ登録が行われていない状態です。そこで、下記の要領でAjax.Updaterを使用後に再度イベントハンドラ登録を行うと要素の更新後もShadowbox.jsを利用できます。私の場合はForm.EventObserverと併用しているので、その中でcallしているAjax.Updater内に記述しています。onLoading:function(request){//その他の処理//現在のイベントハンドラをすべてクリアShadowbox.clearCache();},parameters:value})prototype.js以外のライブラリを使用している場合も、同様にonCompleteやonLoadingに相当するイベントにフックさせれば大丈夫だと思います。IE7の場合、Shadowbox.clearCache()を呼ばず、Shadowbox.setup()のみ呼び出すと正常に動きます。原因はソースを追ってみないとわかりませんが、とりあえず。Shadowbox.setup()の呼び出しタイミングはCGIから返されるHTMLの末尾でscriptタグ内に記述した方が良いです。DOMのロードとJavaScript実行のタイミングを調整するためです。Shadowbox.jsを使う場合のメモCode2012年6月5日IE9なら、モダンブラウザに近づくから面倒なIE対応は減るはず、というのは幻想で余計に手間が増えるケースもあります。今回は限定されたシチュエーションですが、JavaScriptライブラリを使う場合の対応をまとめました。(コガワ・マサヤ)⻘森県弘前市を拠点に、フリーランス・プログラマーとして様々な業種と関わりながらシステム開発を行う。情報設計、マーケティング、フロントエンド・バックエンド開発と職種を問わず、全プロセスを担当。立ち上げ、コンテンツ発信を行いながら飲食店コラボや農家のカフェ起業プロデュースなど、システム開発で得た知見を生かし多岐にわたって活動中。