ホームページ > ウェブフロントエンド > フロントエンドQ&A > JavaScriptでのrangeの使用法は何ですか

JavaScriptでのrangeの使用法は何ですか

藏色散人
リリース: 2022-01-18 11:44:14
オリジナル
2862 人が閲覧しました

JavaScriptのrangeオブジェクトとはHTML文書内の領域を指し、その使用方法は「var elem=range.commonAncestorContainer;if(elem.nodeType != 1){...}」のようになります。 。

JavaScriptでのrangeの使用法は何ですか

この記事の動作環境: Windows 7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript での range の使用法は何ですか?

JS Range オブジェクトの使用法

1: Range オブジェクトとは

Range が参照するものto HTML ドキュメント内の領域。たとえば、以下に示すように、ユーザーは選択した領域をマウスでドラッグします。

JavaScriptでのrangeの使用法は何ですか

Range オブジェクトを通じて、領域を取得できます。ユーザーが選択した、または選択した領域を指定して、Range の始点と終点を取得し、内部のテキスト (HTML も含む) を変更またはコピーします。これらの関数はリッチ テキスト エディターの開発でよく使用されます。

2: 現在の選択内容を取得します

互換性の問題により、IE ブラウザを区別する必要があります。

var selection, range;
if (window.getSelection) { 
    //现代浏览器
    selection = window.getSelection();
} else if (document.selection) { 
    //IE
    selection = document.selection.createRange();
}

//Range对象
range = selection.getRangeAt(0);
ログイン後にコピー

3: range 属性

> collapsed     如果范围的开始点和结束点在文档的同一位置,则为 true,即范围是空的,或折叠的。
> commonAncestorContainer     范围的开始点和结束点的(即它们的祖先节点)、嵌套最深的 Document 节点。
> endContainer         包含范围的结束点的 Document 节点。 
> endOffset     endContainer 中的结束点位置。
> startContainer     包含范围的开始点的 Document 节点。
> startOffset    startContainer中的开始点位置。
ログイン後にコピー

4: range 操作

//选中区域的文字
var text = range.toString();

//选中区域的Element元素
var elem = range.commonAncestorContainer;
if(elem.nodeType != 1){
     elem = elem.parentNode;
}

//选中区域的html
var span = document.createElement('SPAN');
span.appendChild(range.cloneContents());

//选区是否为空
var isSelectionEmpty = false;
if (range.startContainer === range.endContainer) {
   if (range.startOffset === range.endOffset) {
       isSelectionEmpty = true;
   }
}
ログイン後にコピー

推奨学習:「js 基本チュートリアル

以上がJavaScriptでのrangeの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート