私は、ユーザーがコメント システム (貧しい人々 のテキスト エディター) で使用される textarea 内のテキストの簡単な書式設定を実行できるようにしようとしています。カーソルでテキストを選択し、ボタンをクリックしてフォーマットできるようにしたいと考えています。私の質問は、選択したテキストを取得して返すように JavaScript を取得する方法です。次のようになると想像してください。
<script>
function formatText(field) {
//gets text
var text;
text = field.value.substring(field.selectionStart, field.selectionEnd);
//formats it
var text = '<b'>+text+'</b>';
//returns it
field.value.substring(field.selectionStart, field.selectionEnd); = text;
}
</script>
<body>
<textarea id="field"></textarea><button onclick="formatText('field')">Make bold</button>
</body>
更新:次のコードは、選択されたテキストを取得し、フォーマットしてからテキストエリアに送り返しますが、テキストエリア内のすべてのテキストを置き換えます...したがって、すべてではなく、テキストエリア内の選択したテキストを置き換える方法が必要です-そして私やります:
<head>
<script type="text/javascript">
function GetSelection () {
var selection = "";
var textarea = document.getElementById("field");
if ('selectionStart' in textarea) {
// check whether some text is selected in the textarea
if (textarea.selectionStart != textarea.selectionEnd) {
selection = textarea.value.substring (textarea.selectionStart,
textarea.selectionEnd);
}
}
else { // Internet Explorer before version 9
// create a range from the current selection
var textRange = document.selection.createRange ();
// check whether the selection is within the textarea
var rangeParent = textRange.parentElement ();
if (rangeParent === textarea) {
selection = textRange.text;
}
}
if (selection == "") {
alert ("No text is selected.");
}
else {
selection = "<b>"+selection+"</b>";
document.getElementById('field').value = selection;
}
}
</script>
</head>
<body>
<textarea id="field" spellcheck="false">Select some text within this field.</textarea>
<button onclick="GetSelection ()">Get the current selection</button>
</body>
document.getElementByID.value.substr を指定する方法があると思いますが、構文がわかりません。