標準をサポートすると明確に決めていました。レガシコードと完全に後方互換ではなくなっています。タグをサポートしません。ようなブラウザは、さまざまな特異な仕様を引き継いでいます。モードについて解説します。リッチテキスト編集などのなどの非標準技術についても触れます。標準は存在しているものの、ブラウザごとに挙動は違いますす(実際には、同じブラウザもプラットフォームによって挙動が変わります)。遵守した拡張を行わずにいます。アプリを拡張しやすくする方法の基本を説明しましょう。ブロックをあちこちに含んだコードをしばしば見かけます。document.all["myID"]このコードは、拡張性に欠けています。アプリケーション全体のこういったブロックを修正する必要が出てくるからです。新たなブラウザをサポートするときの修正を不要にするための最も簡単な方法として、処理部分を関数として抽出するというのがあります。ブロックを書くよりも、こういった共通の処理を探して独自の関数として抽出してしまうほうがずっと効率的です。これはコードの可読性を高めるだけでなく、新たなクライアントを簡単に追加できるようにします。それでもまだ上記のコードはブラウザ判定を行っています。ブラウザ判定のためにユーザエージェント情報を使うと、使用中のブラウザについての詳細な情報を扱うことになり、ユーザエージェント情報を使ったコードは、新たなブラウザのバージョンが加わったときにミスが発生しやすくなり、コードの修正が必要になってきます。ブラウザの能力やオブジェクトの機能のサポート状況を使ってブラウザを判定した方がずっと良く、信頼性も上がります。変更することなく動くようになります。ユーザエージェント判定が有効なのは、たとえば特定のブラウザの特定のバージョンでのバグに対処する場合など、ごく限られたケースだけです。それ以外の目的ならば、想定しているブラウザがその機能をサポートするかどうかではなく、必要な機能が実際に使えるかをチェックすればよいのです。ふるまいの違いを比較してみます。属性が作られています。属性を表示するようなツールチップのサポートをしています。定めているいくつかのエンティティを使うことができます。これらのエンティティは、数字または文字による参照によって利用することができます。ホワイトスペースとして表示します。いう記述をパースしないはずです。標準に反するからです。ドキュメントの要素を含んだ木構造です。用いてこれを操作することができます。