[訳注] Link先ページ名もその大部分を和訳しましたが、実際のLink先は全て原文のままです。別途和訳が用意されているページでも、タイトル名が異なることが多いと思います。


クロスブラウザ、クロスプラットフォーム、後方互換 Dynamic HTML 入門


Eric Krock, Netscape
Vladimir Ermakov, Netscape

最終更新日 : 2000/12/14

どのブラウザでも同じ動作をする Dynamic HTML を書きたいのですか? このテクニカルノートは、古いブラウザでも支障なく最大限多くの読者が閲覧できる Dynamic HTML ページの作成にあたって役立つ、Netscape サイトや他のいろいろなところで入手できるツールやテクニカルノートや記事などの概要を説明します。


目次


何故クロスブラウザ Dynamic HTML にするのか?

HTML の利点は、それが世界中のどのコンピュータでも作成・表示することができ、ネットワーク間を手軽に且つ透過的にやりとりすることができるということです。これにより以前は物理的記憶装置や LAN に束縛されていた情報が解き放たれ、どこの誰でも、何でも、何処からでも見ることができるようになったのです。

HTML の欠点は静的で面白くないことです。Dynamic HTML は DHTML 互換のブラウザ上では HTML ページに命を吹き込む一方、いかなるクライアントやコンピュータでも HTML の部分はなお正しく表示されます。Lynx のようなテキスト表示のみのブラウザではアニメーションなどは決してできませんが、上手く書かれた Dynamic HTML であれば(どのブラウザでも完全に機能する上に)、古いブラウザや、身体障害者やロボット検索のためのテキストだけを扱うブラウザでもコンテンツを読めるように、美しく簡素化します。

つまり、変化の激しい今日でもウェブデザイナーは、特定のオペレーティングシステムやブラウザに縛られることなく、身体障害者や古いブラウザや古い OS の利用者を締め出したりすることもなく、Dynamic HTML のパワーを存分に使うことができるということなのです。

クロスプラットフォーム、クロスブラウザの実現は共に重要です。というのも、コンテンツプロバイダーは可能な限り多くの顧客の獲得に必死であり、企業はエクストラネットを通じて全ての顧客やサプライヤーに網を張り巡らせたいのですから。どちらの場合でも、潜在的な閲覧者、顧客、広告収入、販売といったものを OS のバージョンやブラウザのベンダーなどによってふいにしたくないはずです。視聴者の20-40%しか見れないようなテレビ広告を出したい人なんていますか?しかし、もしコンテンツを特定 OS やブラウザに限定すれば、それが現実となるのです。

クロスプラットフォーム DHTML の作成は、各ブラウザがプラットフォーム互換として提供している共通基盤を用いる限りにおいて簡単にできるものです。個別のブラウザ毎に、対象とする全てのプラットフォーム間でどんな機能が利用可能であるか理解する必要があります。各ブラウザが対象とする全てのプラットフォームで確実に提供している機能が何であるか(各ブラウザのクロスプラットフォーム機能)をひとたび理解しても、次に、どのように3つのブラウザに互換 (クロスブラウザ機能)となるように作ればよいかを理解する必要があります。
[訳注] 本文書中には明記されていませんが、3つのブラウザとはIE/NN/Geckoの3つのことを指しています。(同著者の書いた他の文書から判断できます)

開発者達は Netscape や Microsoft に HTML 4.0 や W3C DOM のサポートを要求し続けています。そこで、クロスブラウザ DHTML を作るために標準が完全にサポートされるのを待つというのも一つの方法と言えるかも知れません。しかしながら、大部分の人は閲覧者や顧客を今惹き付けたいのであり、現時点での最良の方法はブラウザ間で共通する機能を基に作り、標準の機能でそのまま現在利用できるものを利用するようにすることです。


クロスブラウザDHTMLとは?

Netscape と Microsoft は彼らのブラウザにそれぞれ独自に Dynamic HTML の定義をしています。W3C DOM level 1 (MozillaやNetscape6がサポート)と W3C DOM level 2 (MozillaやNetscape6が部分的サポート)が、Dynamic HTMLの書き方についての初の業界標準規格となっています。クロスブラウザ DHTML はプラットフォームやブラウザ間互換である DHTML 機能のサブセットです。(ユーザーエージェントのサポートする技術を条件付で利用することで全てのブラウザで同じ結果が得られるというなら、それが重要なのです)
クロスブラウザ DHTML には以下のものが含まれます:

ブラウザやプラットフォームに依存するものは何であれクロスブラウザ DHTML ではない。特に、クロスブラウザ DHTML の開発者は、あるブラウザでは機能するが他のブラウザや古いブラウザでエラーになってしまうページを作らないようにするべきである。目標とするのは、最新のブラウザには同じ機能を提供し、古いブラウザでは美しく簡素化することです。

前提知識

このテクニカルノートはジャバスクリプトカスケーディングスタイルシート・レベル1 (CSS1)、HTML要素のカスケーディングスタイルシートによる配置 (CSSP)、Navigator 4 の Document Object Model、スタイルシートの構成や位置情報プロパティを JavaScript で操作可能にする W3C のドキュメントオブジェクトモデルに馴染みのある読者を想定しています。(まだこれらの技術をよく知らないのでしたら、まずは Netscape の Dynamic HTML によるプレゼンテーションのページに行って、CSS1、CSSP、JavaScript によるドキュメントオブジェクトモデルを介してのスタイルシートプロパティの操作についての実践チュートリアルを読んでいってください)


問題点

Web テクノロジーに関する標準は今や戦艦を沈めてしまえるほどです。兵器庫には HTML 4.0、CSS1、CSSP、ECMA-262、W3C DOM、RDF、XML、CSS2、更にその他に英数字を3ないし4字組み合わせたものが無数に用意されています。

こんなにも多くの標準があるにも関わらず、どうして未だに互換性問題があるのでしょう? 以下のようなものが主な問題原因として挙げられるでしょう:

アプリケーションの作成における現実的な方法は、標準を学び、ベンダーの実装を学び、共通する機能を理解し、最大公約数を基に作成することです。

このテクニカルノートでは後方互換を実現する為のクライアントサイドテクノロジーに焦点を当てます。古いブラウザのために美しく簡素化を行う独立したページの作成方法を説明します。しかし、ユーザのクライアントを判別してブラウザやバージョン別に最適化したページの一つを返すことで、この問題をサーバサイドで処理することもできます。クライアントサイドとサーバサイドの両方での開発ができるのであれば、この二つの手法を組み合わせたものが最も効果的になることが多いです。この問題に対するクライアントサイドとサーバサイドでのソリューションの違いについて更に知りたいのでしたら、Netscape のサイトにある"第二部:Dynamic HTML と古いブラウザ--どうするべきか"を読んで下さい。


CSS1 サポート

カスケーディングスタイルシート・レベル1 (CSS1) は一つのブラウザやプラットフォームに依存しない方法で HTML ページの構成やスタイルを指定することを可能にします。CSS1 についてまだよく知らないのでしたら、Netscape の Dynamic HTML によるプレゼンテーションのページに行って、CSS1 の実践チュートリアルを読んでいってください。より詳細を知りたければ、Netscape の Dynamic HTML 追加情報ページW3C のサイトにある CSS1 仕様書をご覧下さい。

CSS1 のサポート状況はブラウザやプラットフォーム間で異なります。CSS1 のサポート状況の違いを知りたいのでしたら、ブラウザとプラットフォーム毎のプロパティサポート状況完全比較表をご覧下さい:http://www.webreview.com/style/css1/charts/mastergrid.shtml

忘れてはならないのは、個々の CSS1 プロパティを利用したい場合には、ターゲットにするブラウザが各プラットフォームでそれをサポートしているかをまず調べなければならないということです。


CSSP サポート

CSSP によるマークアップによって、HTML 要素が絶対位置指定または相対位置指定のいずれで配置されるかを宣言し、それらのページ上での初期位置を指定し、要素が初めに隠れているか表示されているかを決めることができます。CSSP についてまだよく知らないのでしたら、Netscape の Dynamic HTML によるプレゼンテーションページに行って、CSSPの実践チュートリアルを読んでいってください。より詳細を知りたければ、W3C のサイトにあるカスケーディングスタイルシートによる HTML 要素の配置に関する仕様書をご覧下さい。Web には数多くの非公式チュートリアルがあり、私のお薦めは Positioning With CSS2 です。

Netscape 6 と Mozilla は W3C の CSSP についての標準を非常にしっかりと対応しているので、コードをこれらのブラウザで動作させたければ標準への準拠を確認してください。問題に出くわすのは、古いブラウザ上で動作させるときです。私たちは WebReview.com のブラウザ間の CSS1 サポート状況比較ほどに、厳密に、個別に、プロパティ一つずつの Navigator 4.x と Internet Explorer の CSSP サポートの違いについては明るくありません。私たちのクロスブラウザ CSSP 開発上の経験から分かっているのは、絶対位置指定、ピクセル単位の位置指定、各要素の独立した位置指定、要素がネストしないようにするといったことをする場合は、入念にテストをしてやっと同じまたはほぼ同じように見えるクロスブラウザレイアウトを実現できるのだということです。Navigator 4.0/Win32、Navigator 4.0/Mac、Navigator 4.0/UNIX、Internet Explorer 4.0/Win32 でのクロスブラウザ CSSP のサポートをするための簡易"セーフ"リストは、絶対位置指定と以下のプロパティをピクセル単位で指定することです。

プロパティ
position absolute
left pixel 単位
top pixel 単位
width pixel 単位
height pixel 単位
clip pixel 単位
z-index 自然数
visibility inherit | visible | hidden

クロスブラウザ CSSP サポートはピクセル単位で一致したレイアウトまでは保証しないことを心に留め置いてください。(グラフィックデザイナー達がこれを知って残念がるのも無理もないのだが、実際のところ、CSSP 標準は PostScript に匹敵するほどの精細なレイアウト制御を可能にすることを意図しているものではない) 結果として、位置指定、境界、背景などというものには時として少々の差異が生じます。しかしながら、Netscape の Dynamic HTML によるプレゼンテーションテンプレートのような多くの実際のアプリケーションには十分なレベルのクロスブラウザ互換性です。

クライアントについて学ぼう!

全てのブラウザで動作する (そして古いブラウザでは美しく簡素化する) JavaScript と Dynamic HTML を作成する上でキーとなるのは、ユーザのブラウザのベンダーとバーションを判別し、そのブラウザで正しく動作する JavaScript に分岐処理をすることです。ユーザのブラウザベンダー (Netscape、Microsoft、Opera など) とバージョン番号 (2.x、3.x、4.x、5.x など) の判別には、The Ultimate JavaScript Client Snifferにあるブラウザ判別スクリプトを利用してください。この自由にダウンロード可能なサンプルコードは is.navis.nav3is.nav4is.geckois.ie5upis.oprera といった真偽値や、is.major 整数値や is.minor 浮動小数点値といったバージョン番号などのプロパティを持つ is オブジェクトを生成します。JavaScript 中でこれらのプロパティをチェックすることでコードがどのブラウザで実行されているかを判別し、そのブラウザに適切なコードに分岐させることができます。例えば、(is.major == 5) ではなく (is.major >= 5) を使い、is.nav6is.ie5 ではなく is.nav6upis.geckois.ie5up を使ってください。そうしないと、そのコードは恐ろしい "V50 バグ" ("Y2K バグ"の遠い親戚)に陥ってしまい、ブラウザのバージョンが 5 から 6 に変わってしまえば動作しなくなってしまいます。
[訳注] 上で紹介されている The Ultimate JavaScript Client Sniffer 程の詳細なものは必要ないという場合は Practical Browser Sniffering などを検討してみてください。個人的には、独自に修正したものを使っていますが。(^^;


後方互換

次のような理由で JavaScript に非対応または JavaScript を無効化しているブラウザに対しても、互換性を確保するのはよいことです:

JavaScript 非対応 またはテキストブラウザのために美しく簡素化するために、コンテンツの一部としてスクリーンに表示されず、無視されるようにするために、style と script タグを HTML のコメントで必ず囲むようにして下さい。後方互換のためにコメントにする例を示します:

<style type="text/css"><!--
P { color: red }
--></style>

<script language="JavaScript1.2"><!--
var i = 0;
//--></script>

勿論、style や script タグが外部ファイルへのリンクである場合は、JavaScript 非対応 や CSS 非対応ブラウザがそれらのタグと外部ファイルへのリンクを無視するようにするためにコメントにする必要は一切ありません:

<link rel="stylesheet" type="text/css" href="style.css">

<script language="JavaScript1.2" src="style.js"></script>

[訳注] 現在では大部分の非対応ブラウザが script や style タグを認識して無視してくれます。XHTMLではこのようなコメントを禁止していますので、今後は徐々にここに書かれたようなコメントを入れる習慣は無くなっていくものと思われます。(XHTMLにする場合以外はコメントにしておくことを推奨します)

JavaScript 対応の古いブラウザについて

初期仕様の JavaScript を搭載している古いブラウザが、解釈できない新しい仕様に基づいた JavaScript を読み込んでしまわないようにするために、script タグには使われているコードが JavaScript のどのバージョンのものであるかを指定する為に language 属性が用意されています。次の表は、どのタグがどのブラウザで読み込まれるかを示すものです:

タグの記述 読み込むブラウザ
<SCRIPT> 全ての JavaScript 対応ブラウザ
<SCRIPT LANGUAGE="JavaScript"> 全ての JavaScript 対応ブラウザ
<SCRIPT LANGUAGE="JavaScript1.1"> Nav3+, IE4+
<SCRIPT LANGUAGE="JavaScript1.2"> Nav4+, IE4+
<SCRIPT LANGUAGE="JavaScript1.1" SRC=foo.js> Nav3+, IE4+
<SCRIPT LANGUAGE="JavaScript1.2" SRC=foo.js> Nav3+, IE4+

[訳注] HTML 仕様には language 属性でのこのようなバージョン指定は定義されていません。JavaScript 1.3 で Navigator が仕様と違う動作をすることや、IEがこれらのバージョンで求められる実装をしていないところが多々見受けられる点なども考えると、この方法は必ずしも最善策とは言えません。

この方法は一つの例外を除いて大変上手くいきます:Navigator 3 には無視しなければならないにもかかわらず language 属性に"JavaScript1.2"を指定した外部 JavaScript ファイル (src=attribute のとしてリンクされたファイル) を読み込んでしまう有名なバグがあるのです。

Netscape 3 は今では殆ど絶滅していますが、サポートしたいのであればこのバグに対する慣用句があります。つまり、外部 JavaScript 1.2 ファイル中では Navigator 3 でもパースされる([訳注] 構文解析)が Navigator 4.0 以降でのみ実行されるように、JavaScript 1.2 特有の文を明確なブラウザバージョンチェックで囲んでしまうのです。Netscape の Dynamic HTML によるプレゼンテーションテンプレートではこの対策の使用例が示されています:

// Navigator 3 には無視しなければならないにもかかわらず
// <script language="JavaScript1.2" src="...">とした外部
// JavaScript ファイルを読み込んでしまうバグの対策。
// このコードは 4.x 以降でのみ実行されることに注意。

if (parseInt(navigator.appVersion) > 3) {
 if (is.nav4up) document.captureEvents(Event.KEYPRESS);
 document.onkeypress = handleKeys;
} // Nav4+ のみでの実行部分終了

この対応策には一つ問題があります。もし外部 JavaScript 1.2 ファイルがいくつかの JavaScript 1.2 特有のトークン (switch 文や /a*bc+/ のような正規表現リテラルなど) を含む場合、Navigator 3 ではパースされるだけで実行されないのだが、Netscape 3 のパーサが JavaScript エラーを生成します。これらのトークンを含む JavaScript 1.2 コードを使う場合は Navigator 3 のパーサがエラーを起こさないようにするために三つの方法があります:

[訳注] JavaScript 1.2 の例は古いと思うかもしれませんが、ECMA-262 3rd に準じた JavaScript 1.5 などでも同様の問題が生じています。例えば、instanceof 演算子や try...catch 文は 1.3 以前のブラウザではパーサがエラーを生成してしまいます。更にこの例に関しては、switch 文で可能だったような代替策は(Navigatorでの独自仕様を除いて)一切ありません。
個人的には、JavaScript 1.2 以降対応を前提として、1.3以降に実装されたり、バグありで実装されたものはできる限り独自に用意したもので代用し、当面は instanceof などの新機能は利用しないという方針を採っています。


ブラウザ依存コンテンツ

いろいろなブラウザやバージョン間での違いに橋渡しを行う上では、ページを表示しているブラウザをチェックした後に document.write() メソッドを使ってマークアップを動的に生成すると上手くいくことが多いです。この方法によりそれぞれのブラウザやバージョン毎に最適化した、異なるページを表示することが可能になります。JavaScript による CSSP プロパティの設定にあるテクニカルノートではクロスブラウザ DHTML マークアップのための三つの方法を解説し、他のブラウザ依存コンテンツの動的生成で行っているのと同様に DTHML マークアップを動的に生成する関数を収めた API を提供しています。


JavaScript による CSS1 プロパティの設定

強力且つ手軽であるのと同時に、スタイルシートには基本的な限界があります。つまり、静的にハードコーディング ([訳注] コード中に固定的な値 (リテラル) として書き込むこと) されるのです。条件付や自動でページをフォーマットすることができないのです。それ故、CSS1 のプロパティは JavaScript によってドキュメントオブジェクトモデルを介して設定しなければならないのです。Navigator 4.x のドキュメントオブジェクトモデルを使って Navigator 4.x で JavaScript から CSS1 プロパティを設定する方法を知らないのでしたら、Netscapeの Dynamic HTML によるプレゼンテーションのページに行ってドキュメントオブジェクトモデルを介したスタイルシートプロパティへの操作に関する実践チュートリアルを読んでいってください。Mozilla や Netscape 6 での方法を知るには、W3C DOM level 1 と level 2 の仕様書を確認してください。IE での CSS プロパティの設定については、この web workshop を確認してください。

"CSS (つまり、CSS1 と CSSP) でできることは CSSでやれ。CSS でできないことを DOM と JavaScript でやれ。"という鉄則を銘記しておいて下さい。つまり、静的で変化させる必要のない値は CSS で設定し、条件付であったり動的に変化させる必要のある値は JavaScript で設定するということです。

クロスブラウザ DHTML ページを作成する際の時間を節約するために、Netscape では JavaScript による CSS1 プロパティの設定に関するテクニカルノートを用意しています。このテクニカルノートには CSS1 のプロパティを JavaScript で設定する、Netscape 4.x、Internet Explorer や Netscape Gecko レイアウトエンジンを搭載したユーザーエージェントで機能する JavaScript を自動的に生成する JavaScript code generator も含まれています。


JavaScript による CSSP プロパティの設定

JavaScript による CSSP プロパティの設定により、背景色や背景画像を変えるのと同様に、動的に動き、消したり表示したりといったことを HTML 要素に対して行うことができるようになります。Navigator 4.0 での JavaScript による CSSP プロパティの設定方法を理解したいのでしたら、Netscape の Dynamic HTML によるプレゼンテーションのページに行ってドキュメントオブジェクトモデルを介したスタイルシートプロパティの操作に関する実践チュートリアルを読んでいってください。Mozilla や Netscape 6 については W3C DOM level 1,2 を学習してください。この文書の 参考文献 節では多くの参考文献を紹介しています。

Navigator 4.x、Mozilla、Netscape 6 と Internet Explorer は別々のドキュメントオブジェクトモデルを実装しているので、ブラウザ毎に異なる JavaScript コードで CSSP プロパティを設定しなくてはなりません。Danny Goodman が View Source ([訳注] Netscape サイトの一部分のこと) にて、Netscape 4.x と IE の CSSP プロパティモデルの違いについて解説する素晴らしい記事を書いています。まだこれらの相違点についてよく知らないのでしたら JavaScript Apostle: CSS-Positioning -- The Dynamic HTML Neutral Zone を読んで下さい。Danny の記事で解説されているように、DOM の差異の橋渡しを行う最良の方法はクロスブラウザアプリケーションプログラミングインターフェイス (API) を用意することです。これは単に、要素を取り出し、消し、表示し、動かすなどといった共通して使われる操作を行うための、全てのブラウザで呼び出すことができる一連の関数群のことを指す比喩的な名前でしかないのですが。

独自のクロスブラウザ DHTML API を用意する手間を省くために、Netscape ではブラウザ間で使える JavaScript による CSSP プロパティの設定についてのテクニカルノートを用意しています。このテクニカルノートには、Netscape 4.x、Internet Explorer 4+ 及び Gecko を搭載したユーザーエージェントでの基本的な CSSP プロパティの設定を行うための、自由にダウンロードや再利用できる DHTML API が収められています。この API は一部分でも全体でも利用できるように設計されているので、既存のコードを書き換えたくない場合でも、既存の DHTML アプリケーションに追加することができます。関数は静的な HTML マークアップと動的に生成された HTML マークアップの両方で機能します。

もう一つの素晴らしいクロスブラウザ DHTML API が Dan Steinman の無料の完全なチュートリアルである The Dynamic Duo Cross-Browser DHTML に含まれています。DHTML コード全体に渡って用いるのであれば、このAPIでは JavaScript による CSSP プロパティの設定 API にはない追加的な機能が用意されています。
[訳注] Netscape の用意した API ではクロスブラウザを実現することを主眼においていますが、Dan Steinman のAPI は単に CSSP を設定するだけではなく、実際の DHTML アプリケーション作成を効率化する為の補助関数も一緒に用意されているということです。クロスブラウザについて学んだり、独自のものと組み合わせて使うなら Netscape のものが(日本語訳がありますし(^^;)、アプリケーションにそのまま丸々利用するなら Dan Steinman のものがいいのではないかと思います。


クロスブラウザイベントハンドリング

ここでも Danny Goodman が助けてくれます。JavaScript Apostle: Dueling Event Models -- A Cross-Platform Look にて Navigator 4.0 と Internet Explorer 4.0 のイベントハンドリングの差異について説明してくれているのです。まだこの差異について詳しく知らないのでしたらこの記事を今すぐ読んで下さい。次に、彼は Cross-Browser Drag and Drop も解説しています。クロスブラウザイベントハンドリングを用いた実際のアプリケーションを見たいのでしたら、Netscape の Dynamic HTML によるプレゼンテーションテンプレート バージョン 3.0 について論じている最近更新されたテクニカルノート ([訳注] リンクがないので探したのですが、該当するテクニカルノートは見つけられませんでした) をご覧下さい。Netscape 6 のイベントモデルについて知りたければ Danny Goodman の Getting Ready for the W3C Event Model を読んで下さい。

リサイズイベントのハンドリングには特に注意してください。リサイズイベントによって動的に配置した HTML 要素の配置が狂ってしまうことがあります。これには三つの対策があります:


フルスクリーンモード

全てのブラウザは DHTML ページのキャンバスとしてフルスクリーンウィンドウを開く機能を持っています。Netscape のブラウザでは、署名のないスクリプトは、ユーザがウィンドウを閉じられるようにするために表示することが求められているタイトルバーを除いて、全てのコントロールを非表示にしたスクリーンいっぱいのウィンドウを開くことができます。タイトルバーも非表示にしたいのでしたら、スクリプトに署名を付加し、ユーザに UniversalBrowserWrite 特権を認めてもらわなければなりません。(これによりスクリーン全体を乗っ取り、ユーザが逃げられないようにする悪意のスクリプトを防止しているのです) Netscape の特権ベースのセキュリティモデルについてより詳しく知りたければ、Danny Goodman の Applying Signed Scripts を読み、Security Developer Central を訪れてください。


ツール

Netscape DHTML と Microsoft DHTML の間の橋渡しを行うための各種のツールが登場しています。そのようなツールのいくつかを列挙します:

どのツールが一番自分に合うかを選ぶ際に便利な、クロスブラウザ DHTML 開発ツールの比較レビューを Builder.com が用意しています。


CSSP とは?

W3C CSS1 勧告が出されてすぐ、Netscape と Microsoft はテーブルと透明画像を用いずに要素の配置を行う方法が必要だと判断しました。彼らは共同でカスケーディングスタイルシートポジショニング (CSSP) と呼ばれていた、要素の配置についてのドラフト仕様を書いて W3C に提出しました。これは後に W3C CSS2 勧告の中に含められたのです。
[訳注] テーブルと透明画像による要素配置というのは、実サイズ 1x1 の透過png/gif を縦横任意の大きさに拡大したものだけを含むセルを組み合わせることで、強制的に"余白"を作り出して位置を制御するという方法。極力避けるべき手法。


コメント

この記事についてコメントや提案、建設的批判をがあるのですか?他にもヒントや助言や問題対応策を追加して欲しいですか?見せたいクロスブラウザ、クロスバージョンコードのサンプルがあるのですか?私たちにメールするには以下のリンクをご利用下さい。

Netscape に継続的にクロスブラウザ DHTML についての情報を送って欲しいのですか?

Netscape はクロスブラウザ DHTML 開発を支援するために新しいリソースを順次公開していっています。クロスブラウザ Dynamic HTML についての新しく出されたテクニカルノート、サンプルコードや情報を継続的に知らせて欲しいのでしたら、xbrouser-list メーリングリストに参加してください。気が変わったら、これをクリックして xbrouser-list メーリングリストから削除してください。あなたのメールアドレスが売られたり、ばらまかれたり、他の組織と交換したりされることはありません。


参考文献

より詳しいことは以下のリソースを参照してください:
[訳注] いずれも英語Pageへのリンクです。和訳があるものでもリンク先はそのまま原文のものを保持しています。

Sun-Netscape Alliance による製品の最新技術情報が必要でしたら、http://developer.iplanet.com からどうぞ。

インターネット上の更なる開発情報が必要でしたら、Netscape TechSearch をお試し下さい。


Copyright © 1999 Netscape Communications Corporation.
This site powered by: Netscape Enterprise Server and Netscape Compass Server.

訳者: dynamis <translator@skillup.jp>
このドキュメントのオリジナルは mozilla.org において英語で公布されています。
この和訳は、利用者の利便のために Mozilla Japan 翻訳部門 によって提供されています。
内容に関してご不明な点がありましたら webmaster までお問い合わせください。