Range オブジェクトとは document の断片で、ある document 中のノードやテキストノードの一部を含むことのできるものです。
range は document オブジェクトの createRange メソッドにより生成することができます。また、Selection オブジェクトの getRangeAt メソッドにより取得することもできます。
プロパティ
-
range.collapsed - range の始点と終点が同じ位置にあるか否かを示す真偽値を返す
-
range.commonAncestorContainer - startContainer と endContainer をともに含む、最も深いノードを返す
-
range.endContainer - Range の終点を含むノードを返す
-
range.endOffset - endContainer の中での Range の終点の位置を示す数字を返す
-
range.startContainer - Range の始点を含むノードを返す
-
range.startOffset - startContainer の中での Range の始点の位置を示す数字を返す
メソッド
ポジショニングメソッド
これらのメソッドは、range の始点と終点を操作するためのものです。
-
range.setStart - Range の始点を設定
-
range.setEnd - Range の終点を設定
-
range.setStartBefore - 他のノードを基準に Range の始点を設定
-
range.setStartAfter - 他のノードを基準に Range の始点を設定
-
range.setEndBefore - 他のノードを基準に Range の終点を設定
-
range.setEndAfter - 他のノードを基準に Range の終点を設定
-
range.selectNode - Range を、ある node とその内容を含むように設定
-
range.selectNodeContents - Range を、ある node の内容を含むように設定
-
range.collapse - Range をその端点の一方へ折りたたむ
内容変更メソッド
これらのメソッドは、range から Node を取得し、range の内容を変更するものです。
-
range.cloneContents - Range の中身をコピーした document fragment を返す
-
range.deleteContents - Range の中身を document から削除
-
range.extractContents - Range の中身をドキュメントツリー からドキュメントフラグメントに移動
-
range.insertNode - Range の始点に Node を挿入
-
range.surroundContents - Range の中身を新しい Node の中に移動
その他のメソッド
-
range.compareBoundaryPoints - 2 つの range の端点の位置を比較
-
range.cloneRange - 元の range と同じ端点を持つ range オブジェクトを返す
-
range.detach - パフォーマンスを改善するために、range を使用状態から開放
-
range.toString - Range の内容を文字列として返す
Gecko 独自メソッド
ここでは、Rangeのメソッドのうち、Mozilla 独自の、W3C DOM 仕様には含まれないものを解説します。
-
range.compareNode - Node が range の前、後、中、外の内の何れの場所にあるかを示す定数を返す
-
range.comparePoint -
指定された点が range の前、中、後の内の何れの場所にあるかを
-1、0、1で示す -
range.createContextualFragment - 渡された文字列を XML または HTML コードとして解釈し、ドキュメントフラグメントとして返す
-
range.intersectsNode - 指定ノードの範囲と交差するか否かを示す真偽値を返す
-
range.isPointInRange - 与えられた点が range の中にあるか否かを示す真偽値を返す

