lightbox2 を SSL で使う際に IE だとセキュリティ警告が出る件

解決しますた。

いやー、相も変わらず Internet Explorerウ○コタレ 素敵 ですね。

世界から消えてなくなれば良いのに。

ってことで、原因とか解決策とかを覚え書いてみる。

原因

lightbox.css の 11 行目あたりに

background-image: url(data:image/gif;base64, AAAA);

なる記述がありまして。

この子は画像を BASE64 エンコードした文字列を渡す事で、データを画像として扱うための技なんですが、アホンダラな Internet Explorer はこれを SSL のページでも非 SSL なデータとして認識してくれるらしいです。

ちなみに、言うまでもなく Firefox とか Opera とか Safari とかに代表される "正しい" ブラウザは問題無く認識するっぽいですよ。

解決策

まぁ、単純な話で、上記の CSS に記述されている image/gif な画像をちゃんとファイルとして置いてあげれば良いんじゃねぇの?

ってことでワンライナーPHP とかでやるなら

$ php -r "file_put_contents('hover.gif', base64_decode('AAAA'));"

って感じでファイルに書き出してあげる。

んで、lightbox.css を、

-#prevLink, #nextLink{ width: 49%; height: 100%; background-image: url(data:image/gif;base64,AAAA); /* Trick IE into showing hover */ display: block; } 
+#prevLink, #nextLink{ width: 49%; height: 100%; background-image: url(images/lightbox/hover.gif); /* Trick IE into showing hover */ display: block; } 

こんな感じで修正してあげれば OK。

パスは適宜書き換えれ。