最近、Lightbox風のスクリプトの中で、一番使いやすいのでShadowboxを多用しているが、何故か昔制作したHPに設置する分には問題なく動作するのに、新規に制作したサイトや最近制作したサイトに設置すると正しく表示されない。
症状としては、IE6だとリンクをクリックすると、ページの上部に表示されてしまうので、縦に長いページだと表示されるはずの画像が隠れて見えないといったものです。
IE6で動くページと動かないページをいろいろ検証してみた結果、最近のウェブ標準(XHTML+CSS)で制作したページには、ページの先頭に
<?xml version=”1.0″ encoding=”utf-8″?>
というxml宣言の一文が入っており、これの有無でShadowboxの不具合が起こっているようでした。
試しにこれを外すと、全てのページでShadowboxがIE6でも問題なく表示させることができました。
他の方法もググッてみると、スクリプトを修正してもShadowboxをIE6に対応させることが可能なようです。
・http://d.hatena.ne.jp/hiro-tak/20080723
・http://www.screamo.jp/1st/2008/11/16-08-30.php
今回は時間がないので、とりあえずxml宣言を外して納品とします。 一応他のブラウザでも問題無いようですし・・・・・と思ったらIE8ではエラーが!!
一体どれだけ迷惑掛ければすむんだ~ 潰れてしまえ~ >> MS
ググッたところ shadowbox-js.comのフォーラムに答えを発見!
/shadowbox/skin/classic/skin.css に下記の設定を足せばOK
#shadowbox_title {
border: 0px solid;
}#shadowbox_info {
border: 0px solid;
}
これでエラーが出なくなりました。
あと、<head></head>内にIE7の互換モードで動作させるメタタグを入れるだけでもOKのようですね。
<meta http-equiv=”X-UA-Compatible” content=”IE=EmulateIE7″ />
いつもながら皆様、有益な情報をありがとうございます。
しかし、jsファイルでエラーが出てたのに、何でスタイルシートを直すとエラーが出なくなるの???