2006-03-29 Wed

Mac IEにLightbox Plusを読込ませない

当サイトのレイアウトは配付終了したMac IE以外の主要ブラウザでほぼ互換がとれています。もちろん一番思い通りに表示してくれているのはTigerで起動する最新版のSafariです。PantherのSafariもほとんど文句ないですが、スタイルシートなどで強制的に縮小表示している画像*1がちぃと汚い。でもこれはブラウザというよりもOSの機能の問題のようです。Tigerではどのブラウザでもきれいに表示していますので。で、完全無視しているMac IEですが、細々やってるBlogですのでそこまで対応するのもしんどいし、人が少ないので必要性も感じていませんでした。ところが、なんと当サイトを開いただけでIEが強制終了されていたことが判明。Mac IEにとってはブラクラBlogと化していたようです。大変申し訳ありませんでした。

で、その原因ですが、先日「Lightbox JS」より移行した「Lightbox Plus」だったようです。導入以降のアクセスログにMac IEがまったく無かったので、一時的に外してみるとレイアウトはともかく表示はもたつきながらもしてくれました。導入メモはほんとに役立ちます。

というわけで、なにがなんでもMac IEだけにはLightbox Plusを読込ませないように「PHPでIE 6の後方互換対策」で学んだ知識を役立ててみました。

「役立ててみました」なんて偉そうに言っちゃいましたが、やってることは「PHPでIE 6の後方互換対策」とまったく同じ。まず、以下ようなPHPファイルを用意します。

<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
if ( (ereg("Mac",$ua) > 0) && (ereg("MSIE",$ua) > 0)) {
 if (ereg("IE.",$ua) > 0) {
  echo '';
 }
} else {
 echo '<script type="text/javascript" src="http://blog.heartfield-web.com/skins/javascript/lightbox_plus.js"></script>';
}
?>

「PHPでIE 6の後方互換対策」で使用しているPHPとの違いは「Windows」が「Mac」、「MSIE 6.」が「IE」になっただけです。後は出力する文字列をLightbox PlusのURIにしただけ。あとはこのPHPファイルをNucleus変数の「<%phpinclude%>」を使用して、<head>タグ内で呼び出しています。

ブラウザの判別はもっと厳密な定義の方がいいのかもしれませんが、とりあえず思い通りの動作をしてくれているのでよしとしましょう(笑)。

  1. *1 - カテゴリーやタグで絞り込んだ記事の一覧表示に使用している画像。

2006-03-29 Wed / Category - Web

このページの先頭に戻る

Copyright 2006 - Heartfield