Range: compareNode() メソッド

非推奨;: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

非標準: この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

Range.compareNode()Node の位置を示す定数を返します。

取りうる値は以下の通りです。

NODE_BEFORE (0)

Node はこの Range より前に始まる

NODE_AFTER (1)

Node はこの Range より後に終わる

NODE_BEFORE_AND_AFTER (2)

Node はこの Range より前に始まり、後に終わる

NODE_INSIDE (3)

Node はこの Range より後に始まり、前に終わる。すなわち、ノードは完全にこの Range に選択されている。

警告: このメソッドは Gecko 1.9 から削除され、唯一実装していた Firefox の将来のバージョンでは存在しません。使用可能な限り早く Range.compareBoundaryPoints() に切り替えるべきです。

以下の関数が置き換えの関数として使用できます。

js
function rangeCompareNode(range, node) {
  const nodeRange = node.ownerDocument.createRange();
  try {
    nodeRange.selectNode(node);
  } catch (e) {
    nodeRange.selectNodeContents(node);
  }
  const nodeIsBefore =
    range.compareBoundaryPoints(Range.START_TO_START, nodeRange) === 1;
  const nodeIsAfter =
    range.compareBoundaryPoints(Range.END_TO_END, nodeRange) === -1;

  if (nodeIsBefore && !nodeIsAfter) return 0;
  if (!nodeIsBefore && nodeIsAfter) return 1;
  if (nodeIsBefore && nodeIsAfter) return 2;

  return 3;
}

構文

js
compareNode(referenceNode)

引数

referenceNode

この Range と比較する Node です。

返値

Node の位置を示す定数。

js
range = document.createRange();
range.selectNode(document.getElementsByTagName("div").item(0));
returnValue = range.compareNode(document.getElementsByTagName("p").item(0));

メモ

このメソッドは廃止されました。W3C DOM Range.compareBoundaryPoints() メソッドを使用しましょう。

仕様書

このメソッドは標準ではないため、どの仕様にも属しません。

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
compareNode
DeprecatedNon-standard

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Non-standard. Check cross-browser support before using.
Deprecated. Not for use in new websites.

関連情報