JavaScript ドキュメント オブジェクト モデル - DOM 拡張機能
DOM に対する W3C の要件に従って、ブラウザーは DOM に独自にプロパティとメソッドを追加して、その機能を強化できます。新機能の一部は下位互換性のためのものですが、その他は一般的な問題に関する開発者のフィードバックに基づいて追加されています。
プレゼンテーション モード
IE6 以降、IE ブラウザは標準モードと混合モードを区別するため、ブラウザを使用するときにどのモードであるかを区別する必要があります。 IE は、compatMode という属性をドキュメント オブジェクトに追加します。この属性の唯一の役割は、ブラウザーがどのモードであるかを識別することです。たとえば、次の例では、標準モードの場合、document.compatMode の値は「CSS1Compat」に等しく、混合モードの場合、document.compatMode の値は「BackCompat」に等しくなります。
if(document.compatMode == "CSS1Compat"){ alert("标准模式"); }else{ alert("混杂模式"); }
IE 以降、Firefox、Chrome、Opera ブラウザにもこの属性が実装されました。 Safari ブラウザは、バージョン 3.1 以降、 document.compatMode プロパティを実装します。
その後、IE8 では、ドキュメント オブジェクトに documentMode と呼ばれる新しいプロパティが導入されました。使用方法を以下に示します。
if(document.compatMode > 7){ alert("IE8+ 标准模式"); }
これは、IE8 には 3 つの異なるレンダリング モードがあり、この属性はこれらのモードを区別するために正確に導入されているためです。この属性の値が 5 の場合は混合モード (IE5 モード) を示し、値が 7 の場合は IE7 エミュレーション モードを示し、8 の場合は IE8 標準モードを示します。
contains() メソッド
DOM を操作するとき、特定のノードが別のノードの子孫ノードであるかどうかを判断する必要があることがよくあります。 IE ブラウザでは、DOM ツリー全体を走査せずにこの情報を取得できる contains() メソッドが初めて導入されました。 contains() メソッドは、検索の開始点として祖先ノードで呼び出される必要があります。このメソッドは、検出される子孫ノードである 1 つのパラメーターを受け取ります。渡されたノードが現在のノードの子孫である場合は true を返し、それ以外の場合は false を返します。たとえば、
alert(document.documentElement.contains(document.body)); //true
要素が 要素の子孫であるかどうかをテストします。それが適切にフォーマットされた HTML ページである場合、true を返します。
IE、Safari3+、Opera8+、および Chrome ブラウザはすべて contains() メソッドをサポートしています。
Firefox ブラウザは contains() メソッドをサポートしていませんが、Firefox は DOM3 レベルで代替メソッドであるcompareDocumentPosition() メソッドを実装しています。 (Opera9.5 以降のブラウザもこの方法をサポートしています)。このメソッドは 2 つのノード間の関係を決定するために使用され、関係を表すビットマスク (ビットマーク) を返します。このビットマスクの値を次の表に示します。
contains() メソッドを模倣する必要がある場合は、マスク 16 に注意する必要があります。 CompareDocumentPosition() メソッドの結果に対してビットごとの AND 演算を実行して、参照ノード (compareDocumentPosition() メソッドが呼び出された現在のノード) に指定されたノード (引数として渡されたノード) が含まれているかどうかを判断できます。たとえば、次の例:
var result = document.documentElement.compareDocumentPosition(document.body); console.info("result="+result); console.info("按位与操作后的布尔值结果为:"+!!(result & 16));
上記のコードでcompareDocumentPosition()メソッドを実行した後、得られる結果は20で、これは「後方」4と「含まれる」16を意味します。次に、マスク 16 に対するビット単位の AND 演算により、ゼロ以外の値が返されます。 2 つの論理 NOT 演算子は、数値をブール値タイプに変換するために使用されます。
ブラウザの機能検出を通じて、一般的な contains() 関数を作成できます。
/*********************************************************/ /* 浏览器通用contains()方法 /* 参数:refNode - 参考节点 */ /* 参数:otherNode - 要检测的节点 */ /* 返回值: refNode包含otherNode是返回true,否则返回false*/ /*********************************************************/ function contains(refNode,otherNode){ if(typeof refNode.contains == "function"){ return refNode.contains(otherNode); }else if(typeof refNode.compareDocumentPosition == "function"){ return !!(refNode.compareDocumentPosition(otherNode) & 16); }else{ var node = otherNode.parentNode; do{ if (node === refNode) { return true; }else{ node = node.parentNode; } }while(node !== null); return false; } }
この一般的な contains() 関数は 3 つのメソッドを使用して、ノードが別のノードの子孫ノードであるかどうかを判断します。関数の最初のパラメータは参照ノード、2 番目のパラメータは検出されるノードです。
関数本体では、最初に refNode に contains() メソッドが存在するかどうかを確認し、次に、compareDocumentPosition() メソッドがあるかどうかを確認します。関数の最後のステップは、otherNode から開始して DOM ツリーを上方向に走査し、再帰的に取得することです。 parentNode を調べて、それが refNode と等しいかどうかを確認します。ドキュメント ツリーの最上位では、parentNode の値が null に等しくなり、ループが終了します。
上記は JavaScript Document Object Model-DOM 拡張機能の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) をご覧ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript は Web 開発で広く使用されているプログラミング言語であり、WebSocket はリアルタイム通信に使用されるネットワーク プロトコルです。 2 つの強力な機能を組み合わせることで、効率的なリアルタイム画像処理システムを構築できます。この記事では、JavaScript と WebSocket を使用してこのシステムを実装する方法と、具体的なコード例を紹介します。まず、リアルタイム画像処理システムの要件と目標を明確にする必要があります。リアルタイムの画像データを収集できるカメラ デバイスがあるとします。
