ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptを使用してテキストエリアのカーソル位置にテキストを挿入するにはどうすればよいですか?
JavaScript/jQuery を使用したカーソル位置へのテキストの挿入
Web 開発では、カーソルの位置にテキストを追加すると、ユーザー エクスペリエンスが向上します。 1 つのシナリオには、ユーザーがリンクをクリックしたときに事前定義されたテキストをテキスト ボックスにシームレスに挿入できるようにすることが含まれます。
カーソル位置にテキストを挿入
カーソル位置にテキストを挿入するには、次のようにします。次の JavaScript 関数を利用できます:
function insertAtCaret(areaId, text) { // Get the textarea element var txtarea = document.getElementById(areaId); // Check if the element exists if (!txtarea) { return; } // Determine the browser type (Internet Explorer or others) var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ? "ff" : (document.selection ? "ie" : false)); // Calculate the cursor position var strPos = 0; if (br == "ie") { txtarea.focus(); var range = document.selection.createRange(); range.moveStart('character', -txtarea.value.length); strPos = range.text.length; } else if (br == "ff") { strPos = txtarea.selectionStart; } // Create a string that consists of the text before, after, and the inserted text var front = (txtarea.value).substring(0, strPos); var back = (txtarea.value).substring(strPos, txtarea.value.length); txtarea.value = front + text + back; // Reset the cursor position after inserting the text strPos = strPos + text.length; if (br == "ie") { txtarea.focus(); var ieRange = document.selection.createRange(); ieRange.moveStart('character', -txtarea.value.length); ieRange.moveStart('character', strPos); ieRange.moveEnd('character', 0); ieRange.select(); } else if (br == "ff") { txtarea.selectionStart = strPos; txtarea.selectionEnd = strPos; txtarea.focus(); } }
例使用法
次の HTML および JavaScript コードは、insertAtCaret() 関数の使用方法を示しています。
<textarea>
以上がJavaScriptを使用してテキストエリアのカーソル位置にテキストを挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。