SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

クロスブラウザスクリプトの作成テクニック

ブラウザがサポートしているスクリプトを判断する

クロスブラウザスクリプトの作成テクニック 第7回


使用できるスクリプト判断し、レイヤーかスタイルシートを表示する

 さて次は、前回の「ブラウザを判断し、レイヤーかスタイルシートを表示する」のサンプルを、ブラウザを判断するのではなく、使用できるスクリプトを判断して処理を振り分けるように変更したサンプルです。

Sample/sample_5.html
<script type="text/javascript">
<!--
if (document.layers){
  document.write("<layer name='LAY' width='300px' height='200px' left='50px' top='50px' bgcolor='Tan'>");
  document.write("レイヤー...");
  document.write("</layer>");
}
else{
  document.write("<div id='STY' name='STY' style='position:absolute; width:300px; height:200px; left:50px; top:50px; background:Tan'>");
  document.write("スタイルシート...");
  document.write("</div>");
}
//-->
</script>

実行結果

 使用できるスクリプトを判断し、レイヤーかスタイルシートを表示します。

Safariで実行した場合
Safariで実行した場合
Netscape Navigator 4で実行した場合
Netscape Navigator 4で実行した場合

 今回も前回と同様、ウィンドウ上の上端から50ピクセル、左端から50ピクセルの位置に、高さ200ピクセル、横幅300ピクセルのスタイルシートを表示しています。また、Netscape Navigator 4.Xではレイヤーオブジェクトを表示しています。

 レイヤーオブジェクトが使えるかの判断は、条件式if (document.layers)で行っています。レイヤーオブジェクトがサポートされたNetscape Navigator 4.Xであれば、この条件式が真となり、分岐内のレイヤーを書き出す処理を実行します。

 その他のブラウザは、else内に設定したスタイルシートを書き出す処理を実行します。

まとめ

 今回は、実行するスクリプトをブラウザがサポートしているかどうかを調べ、それに合わせて用意したスクリプトを実行する方法について解説しました。この用法の利点は、ブラウザの種類やバージョンを気にする必要がない点にあります。

 前回まで解説してきたブラウザの種類やバージョンを判断し、それに合わせたスクリプトを実行する方法では、常に新しいブラウザの動向を確認し対応していく必要があります。例えばOpera 9は、ユーザーエージェントの見直しが行われたため、以前のバージョンと同じ用法ではブラウザを判断することができませんでした。しかし、今回紹介した方法ではそれを気にする必要はありません。

 次回も、実行するスクリプトをブラウザがサポートしているかどうかを調べ、それに合わせたスクリプトを用意することで、クロスブラウザスクリプトを実現する方法を解説していきます。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
クロスブラウザスクリプトの作成テクニック連載記事一覧

もっと読む

この記事の著者

半場 方人(ハンバ マサヒト)

Netscape2.XでJavaScriptに初めて出合ったころ、「なぜJavaScriptの日本語の書籍が無いんだ」、とあちこちで嘆いていたら、じゃあおまえが書け、とお声がかかり、JavaScript関連の書籍を執筆するようになる。執筆に際していつも考えるのは、「JavaScript初心者だった頃の気持ちを忘れないよに」、ということ。主な著書は、「標準Webデザイン講座 JavaScript&Ajax」(翔泳社)などがある。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/1378 2008/08/26 13:54

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー