ホーム 
 工作室トップ 
 入門・表示 
 便利シリーズ 
 動くシリーズ 
 Cross-Browser 
 スタイルシート 
 画像のトランジション表示 
 画像の反復トランジション 
 複数画像のトランジション 
 ヘルプ表示(1) 
 ヘルプ表示(2) 
 画像反転(2)+ヘルプ表示(2) 
 HTMLフリップ表示 
 スライドイン・アウト 
 ツリー式メニューバー 
 スライドする複数タイトル 
 バウンドするタイトル 
 飛び跳ねるタイトル 
 ぐるぐる回る文字 
 ぐるぐる回る画像 
 UFOのように動く画像 
 クッキー 
 画像・サウンド 
 小技 
 実用 
 スクロール 
 日付・挨拶 
 カラー 
 リンク 
 文字 
 クッキー入門 
 回数/初・前回訪問 
 訪問回数毎の挨拶 
 訪問間隔毎の挨拶 
 更新ページの案内 
 クッキーデータ修復 
 BGM/音声の挨拶(1) 
 BGM/音声の挨拶(2) 
 季節毎の画像表示 
 時刻毎に画像表示 
 時刻毎に背景画像 
 イメージオブジェクト 
 メニュー画像反転(1) 
 メニュー画像反転(2) 
 スライドショー 
 互換命令一覧 
 ブラウザ情報を見る 
 ドキュメント情報 
 整数乱数を得る 
 小ウィンドウを開く 
 フォームサイズ調整 
 2000年対応法 
 jsファイルの活用 
 タロット占い 
 おみくじ 
 万年カレンダー(1) 
 万年カレンダー(2) 
 マルチ検索エンジン 
 フォームメール(基本) 
 フォームメール(応用) 
 ダイエットの鉄人 
 バイオリズム 
 今日のこよみ 
 日月出没計算 
 スクローラ(1) 
 スクローラ(2) 
 電光掲示板(1) 
 電光掲示板(2) 
 テロップ表示(1) 
 テロップ表示(2) 
 説明文テロップ 
 テロップ+画像反転(1) 
 テロップ+画像反転(2) 
 ページスクローラ(1) 
 ページスクローラ(2) 
 カウントダウン表示 
 カウントアップ表示 
 訪問日・更新日表示 
 時刻表示(1) 
 時刻表示(2) 
 朝昼晩のメッセージ(1) 
 時刻毎にメッセージ(2) 
 特別日にメッセージ 
 日数表示 
 背景色(1) 
 背景色(2) 
 フェードイン・アウト 
 リンクボタン 
 メニューセレクター(1) 
 メニューセレクター(2) 
 文字記述と連結 
 文字を取得 
 文字化け対策 
 16進文字列変換 
 カウンタ 
 ソース&改造 
 リンク・統計 
 実用 
 携帯用CGI 
 日付・時刻 
 画像・サウンド 
 グラフィックカウンタ 
 今日・昨日の訪問者 
 今月・先月の訪問者 
 クッキーカウンタ 
 振り分けカウンタ 
 ダウンロードカウンタ(1) 
 ダウンロードカウンタ(2) 
 CGI Tips集 
 webaxs.plの改造 
 openmsg.pl 
 tdylog.cgi 
 pageview.cgi 
 バナー登録 
 バナー登録EX 
 アクセス解析 
 アクセス解析2 
 環境変数一覧 
 ゲストブック 
 ツリー式掲示板 
 お礼メッセージ 
 ご意見番 
 ハッピーバースディ4(自動化版) 
 ハッピーバースディ3(sendmail版) 
 ハッピーバースディ3(CGI版) 
 ハッピーバースディ 
 カレンダー+セイハッピー 
 今日は何の日 
 登録機能つきおみくじ 
 タロット占い 
 相性診断 
 おみくじ 
 今日は何の日 
 ダイエットの鉄人 
 夢チャット 
 AI夢チャット 
 バイオリズム 
 夢掲示板 
 日付・時間表示(SSI) 
 日付・時間表示(CGI) 
 オープニングメッセージ 
 ファイルの最終更新日 
 経過時間表示 
 画像を変える 
 音声でご挨拶 
 音楽を奏でる 
 HTML記述 
 印刷・色指定 
 ソース・ダウンロード 
 ディレクトリ指定 
 カラー項目記述 
 HTMLタグ「"」の記述 
 <,> のブラウザ表示 
 アクセスカウンタの注意点 
 空のファイル作成 
 黒のページを印刷 
 色の指定・組合せ 
 カラーコード対応表 
 カラーファインダー 
 ソースを見る 
 スクリプトをコピー 
 プログラム 
 HTMLソース 
 画像GIFデータ 
 背景GIFデータ 






 このメニューはドラッグ&ドロップで好きな場所に移動できます  戻る  DHTML  CGI&SSI  JavaScript  便利帳 
 


本日  昨日
 
05/30(Fri) 18:02

o ダイナミックHTML(Dynamic HTML)とは
ダイナミックHTML(Dynamic HTML)とは、今までのHTMLでは不可能だった、自由なポジショニングや動的表現を可能にしたHTML技術の事です。

インターネットの2大ブラウザ・Netscape Communicator と Internet Explorer はそれらの最新バージョン・Version4.0xにて共にDynamic HTMLをサポートしています。しかし、ここで大きな問題が・・両ブラウザのDHTMLプログラムには互換性がほとんどないという問題があります。

やはり、私を含めほとんどのホームページ作者はより多くの人に楽しんでもらえるホームページを目指していると思いますので、両ブラウザで同じように動く、Dynamic HTMLページを望んでいると思います。
この工作室では、当ページで適用した、クロスブラウザのサンプル集と解説を行うつもりです。

Dynamic HTMLの特徴

  1. Style Sheetで、コンテンツの自由なポジショニングが可能なため、かなり洗練されたデザインのコンテンツを作成出来ます。
  2. 今までよりインターラクティブで、きめ細かなホームページの製作が可能です。
  3. 文字の大きさやレイアウトなど、ブラウザの違いを意識せずに表示をHP作成者の意図に合わせてコントロールすることが可能になります。
  4. HTML自身に記述するため軽く、JAVAや、プラグインなどの技術を使わずに、比較的容易に動的コンテンツが作成できます。

o クロスブラウザ(Cross Browser)とは
クロスブラウザ(Cross Browser)とは、どのようなブラウザ ( 特に Netscape社の Netscape Communicator と Microsoft社の Internet Explorer )でも動作する HTML を指すようです。

ところが、 NC4.0 及び IE4.0 以降は StyleSheet と レイヤーを中心として CGI 等を使用せずダイナミックな動きや表現を演出する「Dynamic HTML」を前面に出した、 両社独自仕様の JavaScript を公開・実装したため、「Cross Browser」は非常に難しい問題となりました。

特に問題となるのは、両社の実装した新機能が非常に異なるために、両者を吸収する仕組み作りがホームページ作成者の課題となったこと、及び、StyleSheet とレイヤーの実装により、 古いバージョンのブラウザとの共存自体が事実上困難になったこと、ではないでしょうか。

  1. DHTML は IE4.0 又は NC4.0 以上のみでしか通用しない。
  2. DHTML は Style Sheet と JavaScript1.2 が必須で、JavaScript1.2 は Microsoft社 と Netscape社 で実装がかなり異なり、互換性の問題がある。
  3. IE4.0・NC4.0 で共に動作する DHTML が存在する。これを一般には「Cross Browser Dynamic HTML」と言います。
DHTMLを互換させるための基本テクニック
NC4.0とIE4.0のDHTMLを互換させるためには、いくつかのテクニックが必要となります。その基本的なものについて説明します。
No基本テクニック説明
CSSのpositioning HTMLに準拠する NCとIE共通で文字や画像などを動かせる状態にするにはCSSのpositionプロパティを使います。
NCのLAYERタグをなるべく使わない NCの独自タグであるLAYERはCSSでサポートされていません。NCはCSSベースのDHTMLもサポートしていますからDHTML表記をCSSに統一します。
IEのVBScriptやAxtiveXをなるべく使わない IE独自のこれらの機能もクロスブラウザの実現を目的には普通使われません。
NCとIEはオブジェクト構造が違いネストの扱いも異なります NCとIEはオブジェクトの仕様が異なっています。ネストされた(入れ子になった)レイヤーの表記方法がNCとIEとで違うので注意が必要です。

ブラウザの判定
互換DHTMLを作成するにあたって、NC4、IE4などの4.0バージョンのブラウザ間の違いを意識せずにDHTMLスクリプトを書けるようにするために、NC4、IE4かをスクリプト内で分岐する必要があります。

また、DHTMLやJavaScriptを使えない旧バージョンに対応するときにはブラウザやバージョンなどによって処理を分岐する方法も必要になります。
(1、2項のスクリプトは「だれでもカンタンDynamicHTMLサンプル集」から引用しました。)

  1. オブジェクトの有無を調べる
    <例1>
    if(document.layers||document.all){
    	//DHTMLを使える場合(NC4,IE4用)の命令をここに書く
    } else {
    	//DHTMLを使えない場合の命令をここに書く
    	alert('NC4かIE4以上でみてね^^;;')
    }
    
    <例2>
    (1)layers
      if(document.layers){
        //layersが使える場合(NN4用)の命令をここに書く
      }
    (2)all
      if(document.all){
        //allが使える場合(IE4用)の命令をここに書く
      }
    (3)images
      if(document.images){
        //imagesが使える場合(NN3,IE4[Mac版はIE3]以上用)の命令をここに書く
      }
    (4)opener
      if(document.opener){
        //openerが使える場合(NN2,NN3,IE4[Mac版はIE3]以上用)の命令をここに書く
      }
    
  2. ブラウザとバージョンを調べる
    var brwsr=(navigator.appName=="Netscape"||navigator.appName=="Microsoft Internet Explorer")
    var ver=(navigator.appVersion.charAt(0)>=4)
    var dhtmlbrwsr=(brwsr||ver)
    if(dhtmlbrwsr){
    	//DHTMLを使える場合(NC4,IE4以上用)の命令をここに書く
    } else {
    	//DHTMLを使えない場合の命令をここに書く
    	history.go(-1)  //前のページへ戻す
    }
    
  3. JavaScript未対応、JavaScript設定「無効」ブラウザのために <NOSCRIPT> <!--JavaScript未対応、JavaScript設定「無効」ブラウザ用のメッセ-ジ--> <font color=red> せっかくご来訪戴きましたが、ご覧のブラウザではこれより先をご案内することが出来ません。 </font><p> <font color=blue> (1)Netscape Ver2.0 または MSIE Ver3.0 以上の機能を有するブラウザを入手されるか<br> (2)上記以上のブラウザをお使いの場合は、JavaScriptの設定を「有効」にして </font><p> 再度ご来訪下さいますようお願いいたします。 </NOSCRIPT>
Cross Browser関数
各スクリプトの説明の中に、Cross Browser関数を明記してあります。この関数は、「だれでもカンタンDynamicHTMLサンプル集」から引用したもの(著作権フリーです)、自作のものがあります。この関数をコピーして<SCRIPT>と</SCRIPT>の間にペーストしておくだけでこの機能をNC,IE共通で利用できるようになります。
 
 
©1997-2025 Kikuchisan's workshop All rights reserved //

スポンサーリンク

関連コンテンツ