インタラクティブなWebページをより容易に作成するために,MicrosoftがInternet Explorer 4.0で実装した,HTMLの拡張仕様。Dynamic HTML(以後,DHTML)にクライアントサイドのスクリプティングを組み合わせることで,ActiveXやJavaアプレットを使用しなくても,ユーザーの操作に反応して動的に表示を行なうようなWebページを作成することが可能になる。さらに,DHTMLを使用したWebページは,視覚的な変化のためだけにWWWサーバに問い合わせる必要がなくなるため,高い応答性を保つことができる。ダイナミックHTMLの概要
DHTMLの主要な機能としては,Document Object Model(DOM),Data Binding,Scriptletsなどが挙げられる。
(ASCII Glossary HELPより)
ダイナミックHTMLは、別に用意されたプラグイン等を必要とせず、ホームページの内容を動的に変化させることができます。「ダイナミックHTML」という言葉は前述のテクノロジーの総称で、スタイルシートやNetscapeのJavaScript、MicrosoftのJScript、VBScriptなどを指しているようです。NavigatorとInternetExplorerの互換性の問題
2大ブラウザ、NavigatorとInternetExplorerでのダイナミックHTMLにはほとんど互換性がありません。よって、2つのブラウザで動作するHTMLを作成するには、ブラウザを判定し個別の処理を記述するようにします。JavaScriptを使用したブラウザの判別
ダイナミックHTMLの基幹
上記の2つのオブジェクトの互換プロパティを使用して、クロスブラウザ用スクリプトを記述していきます。- NetscapeNavigator4 以降 - JavaScript, レイヤー
- document.layers
- MicrosoftInternetExplorer4 以降 - JScript(HTMLオブジェクト), スタイルシート
- document.all
JavaScriptを使用したブラウザの判別方法を載せてみました。ダイナミックHTMLを使用するためであれば、レイヤー、HTMLオブジェクトの有無を判断する方法が一番簡単です。
■ ブラウザの判別
使用しているブラウザの判別を行います。var NN = (navigator.appName == "Netscape"); //Navigatorであれば NN = true var IE = (navigator.userAgent.indexOf("MSIE") != -1); // Explorerであれば IE = true■ ブラウザバージョンの判別
使用しているブラウザバージョンの判別を行います。var version = (navigator.appVersion.charAt(0)); if (version == 2) {document.write("バージョン2");} if (version == 3) {document.write("バージョン3");} if (version >= 4) {document.write("バージョン4以上");}■ ダイナミックHTMLの使用可能判定
ダイナミックHTML(レイヤ)が使用可能か判定します。if (document.layer) { // Navigator用の命令を記述 } if (document.all) { // InternetExplorer用の命令を記述 }