JavaScriptを使用して、テキスト入力要素のテキストの最後にカーソルを置きます


308

フォーカスが要素に設定された後、JavaScriptを介して入力テキスト要素のテキストの最後にカーソルを置くための最良の方法(そして私は最も簡単な方法を想定しています)は何ですか?

回答:


170

IEで同じ問題に直面しました(RJS /プロトタイプを使用してフォーカスを設定した後)。Firefoxはすでにフィールドに値がある場合、カーソルを最後に置いていました。IEはカーソルをテキストの先頭に強制していました。

私が到達した解決策は次のとおりです:

<input id="search" type="text" value="mycurrtext" size="30" 
       onfocus="this.value = this.value;" name="search"/>

これはIE7とFF3の両方で機能します


3
textareaはどうなりますか?
Tareq

19
Chromeで動作します(9.0.597.98)
Matt

6
これはIE9では機能しなくなりました -カーソルがフィールドの先頭にジャンプします。

6
また、FF 8では機能しません。ただし、ケノサウルスの解決策は機能するようです。
サイモン、

3
は、Chrome 24.0.1312.57、IE 9.0.8112では機能しましたが、Firefox 18.0.2では機能しませんでした
Chris-Haddox Technologies

190

ほとんどのブラウザで機能させる簡単な方法があります。

this.selectionStart = this.selectionEnd = this.value.length;

ただし、いくつかのブラウザの*癖のため、より包括的な答えは次のようになります

setTimeout(function(){ that.selectionStart = that.selectionEnd = 10000; }, 0);

jQueryの使用 (リスナーを設定しますが、それ以外の場合は必要ありません)

バニラJSを使用する この回答addEventから機能を借りる)


Chromeには奇妙な癖があり、カーソルがフィールドに移動する前にfocusイベントが発生します。これは私の簡単な解決策を台無しにします。これを修正する2つのオプション:

  1. 0ミリ秒のタイムアウトを追加できます(スタックがクリアされるまで操作延期するため)
  2. イベントをからfocusに変更できますmouseup。フォーカスを追跡し続けない限り、これはユーザーにとってかなり煩わしいことです。私はこれらのオプションのどちらにも本当に恋していません。

また、@ vladkrasは、Operaの一部の古いバージョンでは、スペースがあると長さが正しく計算されないことを指摘しました。このためには、あなたの文字列よりも大きいはずの巨大な数を使うことができます。


2
Chrome 24.0.1312.57、IE 9.0.8112、Firefox 18.0.2で動作しました
Chris-Haddox Technologies

4
これは、観察(kludge)ではなく優れたソリューションであり、コードが少なく、ここで説明する代替策よりも理解しやすくなっています。ありがとう。
Derek Litz、2013年

最初のフォーカスイベントに対してのみそれを行い、すぐにそれを呼び出します。そうしないと、フィールドをクリックするたびに、カーソルが最後に移動します。
ダミアン

this.selectionStart = this.selectionEnd = 0; これにより、入力ボックスの最初の文字の前にフォーカスが移動します。しかし、デバッグしたとき、selectionEndとselectionStartの値は変更されていません!また、最初のキャラクターには移動しません!!
ソハム2013

1
Operaは時々正しく機能せselectionStartlength、スペースでより少ない数を返すと報告されていました。そのため、10000代わりにthis.value.length(IE8とIE11でテスト済み)の代わりに十分な数を使用します
vladkras

160

これを試してください、それは私のために働きました:

//input is the input element

input.focus(); //sets focus to element
var val = this.input.value; //store the value of the element
this.input.value = ''; //clear the value of the element
this.input.value = val; //set that value back.  

カーソルを最後に移動するには、最初に入力にフォーカスがなければならず、次に値が変更されると最後に移動します。.valueを同じに設定しても、Chromeでは変更されません。


2
これはonfocus = "this.value = this.value;のようなものです
Tareq

15
値を設定する前にフォーカスを設定することが、Chromeで機能するための鍵です。
anatly techtonik '19年

7
なぜthis.2、3、4行目の入力の前に置くのですか?これinputが入力要素であることはすでに知っています。使用thisは冗長に思われます。そうでなければ良い解決策!
The111

3
@Tareq彼らは同じではありません。このトリックは、受け入れられた答えよりもはるかに優れています。
ルイス

4
より簡単:$input.focus().val($input.val());
milkovsky 2017年

99

これで少しハッキングした後、私は最良の方法は setSelectionRange、ブラウザがサポートしている場合は関数。そうでない場合は、Mike Berrowの回答にあるメソッドの使用に戻ります(つまり、値をそれ自体で置き換えます)。

またscrollTop、縦方向にスクロール可能な場合に備えて、高い値に設定していますtextarea。(任意の高い値を使用する$(this).height()と、FirefoxやChrome よりも信頼性が高くなります。)

私はそれをjQueryプラグインとして作成しました。(jQueryを使用していない場合でも、要点は十分簡単に​​取得できます。)

IE6、IE7、IE8、Firefox 3.5.5、Google Chrome 3.0、Safari 4.0.4、Opera 10.00でテストしました。

jquery.comでPutCursorAtEndプラグインとして利用できます。便宜上、リリース1.0のコードは次のとおりです。

// jQuery plugin: PutCursorAtEnd 1.0
// http://plugins.jquery.com/project/PutCursorAtEnd
// by teedyay
//
// Puts the cursor at the end of a textbox/ textarea

// codesnippet: 691e18b1-f4f9-41b4-8fe8-bc8ee51b48d4
(function($)
{
    jQuery.fn.putCursorAtEnd = function()
    {
    return this.each(function()
    {
        $(this).focus()

        // If this function exists...
        if (this.setSelectionRange)
        {
        // ... then use it
        // (Doesn't work in IE)

        // Double the length because Opera is inconsistent about whether a carriage return is one character or two. Sigh.
        var len = $(this).val().length * 2;
        this.setSelectionRange(len, len);
        }
        else
        {
        // ... otherwise replace the contents with itself
        // (Doesn't work in Google Chrome)
        $(this).val($(this).val());
        }

        // Scroll to the bottom, in case we're in a tall textarea
        // (Necessary for Firefox and Google Chrome)
        this.scrollTop = 999999;
    });
    };
})(jQuery);

4
なぜ長さを計算するのですか?とにかくオーバーシュートするのであれば、なぜthis.setSelectionRange(9999,9999)だけではないのですか?
PRMan、2015年

21
<script type="text/javascript">  
    function SetEnd(txt) {  
      if (txt.createTextRange) {  
       //IE  
       var FieldRange = txt.createTextRange();  
       FieldRange.moveStart('character', txt.value.length);  
       FieldRange.collapse();  
       FieldRange.select();  
       }  
      else {  
       //Firefox and Opera  
       txt.focus();  
       var length = txt.value.length;  
       txt.setSelectionRange(length, length);  
      }  
    }   
</script>  

この機能は、IE9、Firefox 6.x、およびOpera 11.xで動作します


FF6とIE8の両方で機能するように思われる素晴らしい、最初の準備ができたソリューション。
simon

3
どういうわけか、人気のある答えがうまくいきませんでした。これは完璧に機能しました。
metric152 2012年

IE9では動作しません。エラー:SCRIPT16389: Unspecified error.
soham

1
FF 46、Chrome 51、IE 11で完全に動作します
webdevguy

これはIE 8で機能しますが、他のオプションでは機能しませんでした。ありがとうございました。
BenMaddox 2016

17

私はクロムでかなりの成功を収めて以下を試しました

$("input.focus").focus(function () {
    var val = this.value,
        $this = $(this);
    $this.val("");

    setTimeout(function () {
        $this.val(val);
    }, 1);
});

簡単な要約:

クラスフォーカスのあるすべての入力フィールドを取得し、入力フィールドの古い値を変数に格納します。その後、空の文字列を入力フィールドに適用します。

次に、1ミリ秒待機してから、古い値を再度入力します。


パーフェクト!他のすべてのソリューションは私にとってうまくいきません、あなたのソリューションだけが私のために働いています。おそらく、phpを使用して値をtextareaに割り当てているため、jsが値を検出できないため、jsは1ミリ秒待機する必要があります。
zac1987

3
@ zac1987では、phpがhtmlをレンダリングし、htmlがクライアントにロードされ、jsが実行されるため、おそらくそうではありません。おそらく、ドキュメント準備完了イベントを待っていません。
12

このようにsetTimeoutを使用すると、予期しない結果が生じる可能性があることを指摘してください。コードは、valが元に戻されない1msの間に何かが入力を変更するなど、状況によっては正しく動作する場合があります。また、1ms秒が最小待機時間であることに注意することも重要です。したがって、CPUにバインドされたメソッドがある場合、フォーカスは1ms以上待機する可能性があります。これにより、UIが応答しなくなります。とにかく.val()メソッドがUIの変更をトリガーする必要があるため、これは必要ありません。
ロイック・フォーレ-ラクロワ

10

それは2019年であり、上記の方法のどれも私にとってはうまくいきませんでしたが、これはhttps://css-tricks.com/snippets/javascript/move-cursor-to-end-of-input/から取られたものでした

function moveCursorToEnd(id) {
  var el = document.getElementById(id) 
  el.focus()
  if (typeof el.selectionStart == "number") {
      el.selectionStart = el.selectionEnd = el.value.length;
  } else if (typeof el.createTextRange != "undefined") {           
      var range = el.createTextRange();
      range.collapse(false);
      range.select();
  }
}
<input id="myinput" type="text" />
<a href="#" onclick="moveCursorToEnd('myinput')">Move cursor to end</a>


1
@MaxAlexanderHannaのおかげで、私はそれしか持っていなかっel.focus()else ifため、一部のケースでは機能しませんでした。私はこれが現在クロムと(震動) IE で動作することを確認しました
Andy Raddatz

2019年7月12日の時点で、IEとChromeの両方でテストされ動作します。ありがとう、賛成です。
Max Alexander Hanna

素晴らしい、これはカタリナベータ版のSafariで動作します。
NetOperator Wibby

8

シンプル。値を編​​集または変更するときは、最初にフォーカスを置き、次に値を設定します。

$("#catg_name").focus();
$("#catg_name").val(catg_name);

古い標準は2016年もここでChromeとFFで引き続き機能します
。– Volomike

1
完璧な答え。
パルタポール

7

それでも中間変数が必要です(var val =を参照)。それ以外の場合、カーソルの動作がおかしいので、最後に必要です。

<body onload="document.getElementById('userinput').focus();">
<form>
<input id="userinput" onfocus="var val=this.value; this.value=''; this.value= val;"
         class=large type="text" size="10" maxlength="50" value="beans" name="myinput">
</form>
</body>

6

el.setSelectionRange(-1, -1);

https://codesandbox.io/s/peaceful-bash-x2mti

このメソッドは、1回の呼び出しでHTMLInputElement.selectionStart、selectionEnd、およびselectionDirectionプロパティを更新します。

https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange

他のjsメソッドで-1は通常、(最後の)文字を意味します。これもこれに当てはまりますが、ドキュメントでこの動作の明示的な言及を見つけることができませんでした。


これは私にとって完璧に機能し、最も簡単です。+1
Chris Farr

また、onfocus = "this.value = this.value;"も含める必要がありました。マイク・ベロウの回答より
クリス・ファー

5

すべてのブラウザーのすべての場合:

function moveCursorToEnd(el) {
    window.setTimeout(function () {
            if (typeof el.selectionStart == "number") {
            el.selectionStart = el.selectionEnd = el.value.length;
        } else if (typeof el.createTextRange != "undefined") {
            var range = el.createTextRange();
            range.collapse(false);
            range.select();
        }
    }, 1);
}

onFocusイベントハンドラーからカーソルを移動する必要がある場合はタイムアウトが必要


ただし、これによりAndroidでは問題が発生することに注意してください。これは、範囲を選択するとデータがキーボードバッファーに入れられるためです。つまり、入力したキーは、入力のテキストを複製することになり、あまり役に立ちません。
Mike 'Pomax' Kamermans '06 / 12/15

1
これは素晴らしく、IEで私にとって素晴らしい働きをしました!私はscrollLeftを必要とする入力の束を持っています。つまり、奇妙なことを行うので、シムに使用できるものを探していましたが、これがそれでした。他のブラウザでは機能しませんが、つまり何も機能しない場合、これは驚くべきことです!
zazvorniki 2016年

5

受け入れられた回答はとても気に入っていますが、Chromeでは機能しなくなりました。Chromeでは、カーソルを最後に移動するには、入力値を変更する必要があります。解決策は次のとおりです。

<input id="search" type="text" value="mycurrtext" size="30" 
   onfocus="var value = this.value; this.value = null; this.value = value;" name="search"/>

1
これは、私にとってChromeで実際に機能するソリューションです。構文は奇妙ですが、ちょっと、今のところこのソリューションで生きることを学びます!
Sam Bellerose、

3

jQueryでは、それは

$(document).ready(function () {
  $('input').focus(function () {
    $(this).attr('value',$(this).attr('value'));
  }
}

2
この関数は、$( 'input')がフォーカスを受け取ったときにのみvalue属性をvalueに割り当てます。カーソルを行末に送りません。
vrish88 2010年

3

この問題は興味深いものです。それについて最も混乱することは、私が見つけた解決策が問題を完全に解決しなかったことです。

+++++++ソリューション+++++++

  1. 次のようなJS関数が必要です。

    function moveCursorToEnd(obj) {
    
      if (!(obj.updating)) {
        obj.updating = true;
        var oldValue = obj.value;
        obj.value = '';
        setTimeout(function(){ obj.value = oldValue; obj.updating = false; }, 100);
      }
    
    }
  2. onfocusイベントとonclickイベントでこの人を呼び出す必要があります。

    <input type="text" value="Test Field" onfocus="moveCursorToEnd(this)" onclick="moveCursorToEnd(this)">

それはすべてのデバイスとブラウザで動作します!!!!


2

iOSでは、textarea.textContentプロパティを設定すると毎回textarea要素のテキストの末尾にカーソルが置かれることがわかりました。この動作は私のアプリのバグでしたが、意図的に使用できるもののようです。


2
var valsrch = $('#search').val();
$('#search').val('').focus().val(valsrch);

このソリューションは、既存のjQueryソリューションよりも優れていますか?
Rovanion

これは別の解決策です。HTMLファイルを編集し、JavaScriptのみを編集する許可がない場合、この解決策はより良いです;)私は同じ状況でした!
ハンクルム、2016年

このソリューションは私にとってはうまくいきましたが、他のjQueryソリューションは、フォーカスする前に入力値を空にしたという事実におそらく関連していませんでした。
talsibony 2017年

2

答えのいくつかを取る..単一行のjqueryを作成する。

$('#search').focus().val($('#search').val());

1

入力フィールドに静的なデフォルト値が必要な場合は、通常、jQueryを使用してこれを行います。

$('#input').focus().val('Default value');

これはすべてのブラウザで動作するようです。


1

これは多くの回答がある古い質問かもしれませんが、私は同様の問題に出くわしました、そして、回答のどれも私が望んでいたものでなかったか、不十分に説明されました。selectionStartプロパティとselectionEndプロパティの問題は、入力タイプ番号には存在しないことです(テキストタイプについて質問されましたが、他の入力タイプがあり、フォーカスする必要がある他の人に役立つかもしれません)。したがって、関数がフォーカスする入力タイプがタイプ番号であるかどうかわからない場合は、そのソリューションを使用できません。

クロスブラウザーおよびすべての入力タイプに対して機能するソリューションは、かなり単純です。

  • 入力の値を取得して変数に格納する
  • 入力に焦点を合わせる
  • 入力の値を保存された値に設定する

このようにして、カーソルは入力要素の末尾にあります。
だからあなたがやろうとしていることはこのようなものです(フォーカスしたい要素セレクターがクリックされた要素の「data-focus-element」データ属性を介してアクセス可能であり、関数が「.foo」をクリックした後に実行される場合、jqueryを使用します素子):

$('.foo').click(function() {
    element_selector = $(this).attr('data-focus-element');
    $focus = $(element_selector);
    value = $focus.val();
    $focus.focus();
    $focus.val(value);
});

なぜこれが機能するのですか?単純に、.focus()が呼び出されると、入力要素の先頭にフォーカスが追加され(ここでの中心的な問題です)、入力要素にすでに値があるという事実は無視されます。ただし、入力の値が変更されると、カーソルは入力要素内の値の末尾に自動的に置かれます。そのため、以前に入力に入力したのと同じ値で値をオーバーライドすると、値は変更されないように見えますが、カーソルは最後に移動します。


1

これは、Vanilla JavaScriptで動作するものを試してください。

<input type="text" id="yourId" onfocus=" let value = this.value; this.value = null; this.value=value" name="nameYouWant" class="yourClass" value="yourValue" placeholder="yourPlaceholder...">

Jsで

document.getElementById("yourId").focus()

0

テキスト領域をクリックしたときにカーソルをテキストの最後に設定します...このコードのバリエーションは...また動作します!Firefox、IE、Safari、Chrome用。

サーバー側コード:

txtAddNoteMessage.Attributes.Add("onClick", "sendCursorToEnd('" & txtAddNoteMessage.ClientID & "');")

JavaScriptでは:

function sendCursorToEnd(obj) {
    var value =  $(obj).val(); //store the value of the element
    var message = "";
    if (value != "") {
        message = value + "\n";
     };
    $(obj).focus().val(message);
    $(obj).unbind();
 }

0

最初に値を設定してからフォーカスを設定すると、カーソルは常に最後に表示されます。

$("#search-button").click(function (event) {
    event.preventDefault();
    $('#textbox').val('this');
    $("#textbox").focus();
    return false;
});

これがテストするフィドルです https://jsfiddle.net/5on50caf/1/


0

contenteditable = trueである「div」要素の末尾にカーソルを置きたかったのですが、Xeoncrossコードで解決策を得ました。

<input type="button" value="Paste HTML" onclick="document.getElementById('test').focus(); pasteHtmlAtCaret('<b>INSERTED</b>'); ">

<div id="test" contenteditable="true">
    Here is some nice text
</div>

そして、この関数は魔法をかけます:

 function pasteHtmlAtCaret(html) {
    var sel, range;
    if (window.getSelection) {
        // IE9 and non-IE
        sel = window.getSelection();
        if (sel.getRangeAt && sel.rangeCount) {
            range = sel.getRangeAt(0);
            range.deleteContents();

            // Range.createContextualFragment() would be useful here but is
            // non-standard and not supported in all browsers (IE9, for one)
            var el = document.createElement("div");
            el.innerHTML = html;
            var frag = document.createDocumentFragment(), node, lastNode;
            while ( (node = el.firstChild) ) {
                lastNode = frag.appendChild(node);
            }
            range.insertNode(frag);

            // Preserve the selection
            if (lastNode) {
                range = range.cloneRange();
                range.setStartAfter(lastNode);
                range.collapse(true);
                sel.removeAllRanges();
                sel.addRange(range);
            }
        }
    } else if (document.selection && document.selection.type != "Control") {
        // IE < 9
        document.selection.createRange().pasteHTML(html);
    }
}

ほとんどのブラウザで問題なく動作します。確認してください。このコードはテキストを配置し、div要素(input要素ではない)のテキストの最後にフォーカスを置きます

https://jsfiddle.net/Xeoncross/4tUDk/

ありがとう、Xeoncross


0

私も同じ問題に直面しました。最後にこれは私のために働くつもりです:

jQuery.fn.putCursorAtEnd =  = function() {

  return this.each(function() {

    // Cache references
    var $el = $(this),
        el = this;

    // Only focus if input isn't already
    if (!$el.is(":focus")) {
     $el.focus();
    }

    // If this function exists... (IE 9+)
    if (el.setSelectionRange) {

      // Double the length because Opera is inconsistent about whether a carriage return is one character or two.
      var len = $el.val().length * 2;

      // Timeout seems to be required for Blink
      setTimeout(function() {
        el.setSelectionRange(len, len);
      }, 1);

    } else {

      // As a fallback, replace the contents with itself
      // Doesn't work in Chrome, but Chrome supports setSelectionRange
      $el.val($el.val());

    }

    // Scroll to the bottom, in case we're in a tall textarea
    // (Necessary for Firefox and Chrome)
    this.scrollTop = 999999;

  });

};

これは、これを呼び出す方法です。

var searchInput = $("#searchInputOrTextarea");

searchInput
  .putCursorAtEnd() // should be chainable
  .on("focus", function() { // could be on any event
    searchInput.putCursorAtEnd()
  });

サファリ、IE、Chrome、Mozillaで動作します。モバイルデバイスでは、これを試していません。


0

この解決策を確認してください!

//fn setCurPosition
$.fn.setCurPosition = function(pos) {
    this.focus();
    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;
};

// USAGE - Set Cursor ends
$('#str1').setCurPosition($('#str1').val().length);

// USAGE - Set Cursor at 7 position
// $('#str2').setCurPosition(7);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>Set cursor at any position</p>
<p><input type="text" id="str1" value="my string here" /></p>
<p><input type="text" id="str2" value="my string here" /></p>


0

超簡単(入力要素に集中する必要があるかもしれません)

inputEl = getElementById('inputId');
var temp = inputEl.value;
inputEl.value = '';
inputEl.value = temp;

-1

以前に提案を試しましたが、うまくいきませんでした(Chromeでテストしました)。自分でコードを記述しました。Firefox、IE、Safari、Chromeでも問題なく動作します...

Textarea:

onfocus() = sendCursorToEnd(this);

JavaScriptでは:

function sendCursorToEnd(obj) { 
var value = obj.value; //store the value of the element
var message = "";
if (value != "") {
    message = value + "\n";
};
$(obj).focus().val(message);}

-1

ここに私の答えのjsFiddleデモがあります。デモではCoffeeScriptを使用していますが必要に応じてプレーンJavaScriptに変換できます。

JavaScriptの重要な部分:

var endIndex = textField.value.length;
if (textField.setSelectionRange) {
   textField.setSelectionRange(endIndex, endIndex);
}

この質問を投稿したのは、同じ質問を持つ他の人のためにすでに書いたからです。この回答は、ここでの上位の回答ほど多くのエッジケースをカバーしていませんが、私にとってはうまくいき、あなたが操作できるjsFiddleデモがあります。

jsFiddleのコードを次に示します。jsFiddleが消えても、この回答は保持されます。

moveCursorToEnd = (textField) ->
  endIndex = textField.value.length
  if textField.setSelectionRange
    textField.setSelectionRange(endIndex, endIndex)

jQuery ->
  $('.that-field').on 'click', ->
    moveCursorToEnd(this)
<div class="field">
    <label for="pressure">Blood pressure</label>:
    <input class="that-field" type="text" name="pressure" id="pressure" value="24">
</div>
<p>
    Try clicking in the text field. The cursor will always jump to the end.
</p>
body {
    margin: 1em;
}

.field {
    margin-bottom: 1em;
}

-1

次のコードを試してください:

$('input').focus(function () {
    $(this).val($(this).val());
}).focus()

1
末尾の空白を追加することは、OPが望んでいる副作用ですか?
Charles Duffy、

しかし、なぜ私の答えは-2になるのですか?わかりません!これは機能する例です
msroot 2015年

不特定の副作用を修正したので、それは明らかに(望ましくない動作の意味で)間違いではありませんが、その時点より前に反対票が投じられた理由を理解できます。この時点で、私が賛成票を投じない理由は、潜在的にパフォーマンスが低いことです。無制限の長さの値の読み取りと書き込みは遅くなる可能性があります。このsetSelectionRangeアプローチは、サポートされている場合とサポートされている場合には、はるかに効率的です。
Charles Duffy

1
(まあ、それ、そしてそれは既存の値を再設定することによっても機能した既存の回答に何が追加されるのかわかりません。それが何か新しい/重要なものを追加する場合は、コードだけでなく、それが何であるかを説明するテキストを追加します、 役立つだろう)。
Charles Duffy、

確かに-そしてOPは彼らがスペースを望んでいることを質問で示しましたか?そうでない場合は、仕様の一部ではありません。したがって、「不特定」。
Charles Duffy

-1

返答は遅すぎますが、今後の問い合わせには役立ちます。また、contenteditablediv でも機能します。

最後にフォーカスを設定する必要がある場所から。このコードを書いてください

var el = document.getElementById("your_element_id");
placeCaretAtEnd(el);

そして機能は-

function placeCaretAtEnd(el) {
    el.focus();
    if (typeof window.getSelection != "undefined"
            && typeof document.createRange != "undefined") {
        var range = document.createRange();
        range.selectNodeContents(el);
        range.collapse(false);
        var sel = window.getSelection();
        sel.removeAllRanges();
        sel.addRange(range);
    } else if (typeof document.body.createTextRange != "undefined") {
        var textRange = document.body.createTextRange();
        textRange.moveToElementText(el);
        textRange.collapse(false);
        textRange.select();
    }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.