ホームページ >ウェブフロントエンド >jsチュートリアル >入力テキスト選択コードスニペット

入力テキスト選択コードスニペット

Lisa Kudrow
Lisa Kudrowオリジナル
2025-02-23 09:38:14704ブラウズ

このドキュメントは、入力フィールドでテキスト選択を管理するためのコードスニペットを提供します。 Modern ChromeとFirefoxは.setSelectionRange()を利用しますが、Firefoxは事前に焦点を合わせるために要素を必要とします。

Input Text Selection Code Snippets

カーソル位置の取得:

<code class="language-javascript">jQuery.fn.getCursorPosition = function(){
    if(this.length == 0) return -1;
    return $(this).getSelectionStart();
};</code>

選択開始の取得:

<code class="language-javascript">jQuery.fn.getSelectionStart = function(){
    if(this.length == 0) return -1;
    input = this[0];
    var pos = input.value.length;
    if (input.createTextRange) {
        var r = document.selection.createRange().duplicate();
        r.moveEnd('character', input.value.length);
        if (r.text == '') pos = input.value.length;
        pos = input.value.lastIndexOf(r.text);
    } else if(typeof(input.selectionStart)!="undefined") pos = input.selectionStart;
    return pos;
};</code>

カーソル位置の設定:

<code class="language-javascript">jQuery.fn.setCursorPosition = function(pos) {
  this.each(function(index, elem) {
    if (elem.setSelectionRange) {
      elem.setSelectionRange(pos, pos);
    } else if (elem.createTextRange) {
      var range = elem.createTextRange();
      range.collapse(true);
      range.moveEnd('character', pos);
      range.moveStart('character', pos);
      range.select();
    }
  });
  return this;
};</code>

カーソル位置の設定(代替):

<code class="language-javascript">function setCursorPos(node,pos){
    var node = (typeof node == "string" || node instanceof String) ? document.getElementById(node) : node;
    node.focus(); // Crucial for Firefox
    if(!node) return false;
    else if(node.createTextRange){
        var textRange = node.createTextRange();
        textRange.collapse(true);
        textRange.moveStart('character', pos);
        textRange.moveEnd('character', 0);
        textRange.select();
        return true;
    }else if(node.setSelectionRange){
        node.setSelectionRange(pos,pos);
        return true;
    }
    return false;
}</code>

よくある質問:

FAQセクションでは、

setSelectionRangeselectionStart、ブラウザの互換性、パラメーターの取り扱いの明確な説明を提供します。 答えは簡潔で正確です。 ここでは変更は必要ありません。selectionEnd

以上が入力テキスト選択コードスニペットの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:JSON構文とヒント次の記事:JSON構文とヒント