。メリーランド州Tahazzot:
私はJavaScriptを使用して、選択したテキストの位置を取得したいです。例えば、
私は、単純なテキストエリアを持っています。
#input-text {
resize: none;
width: 50%;
height: 50px;
margin: 1rem auto;
}
<textarea id="input-text">I am a student and I want to become a good person</textarea>
私のテキストエリアでは、私はいくつかのテキストなどがあります。
"I am a student and I want to become a good person"
私が選択した場合、この文字列から、テキストエリアから「良い人になる」
私はJavaScriptで選択したテキスト/文字列の位置を取得することができますどのようにして?
開始位置が29であると終了位置が49であるので、ここで選択した文字列の文字は49で29と端から開始します
いまいましいです:
これは、ページ上のすべてのtextarea要素のためのマウスとキーボードでテキスト選択のために動作します。あなたが/必要キーボードの選択をしたくない場合は、セレクタを変更し、そこに具体的とのコメントを読んでどちらかにしてください。
var mySelection = function (element) {
let startPos = element.selectionStart;
let endPos = element.selectionEnd;
let selectedText = element.value.substring(startPos, endPos);
if(selectedText.length <= 0) {
return; // stop here if selection length is <= 0
}
// log the selection
console.log("startPos: " + startPos, " | endPos: " + endPos );
console.log("selectedText: " + selectedText);
};
var textAreaElements = document.querySelectorAll('textarea');
[...textAreaElements].forEach(function(element) {
// register "mouseup" event for the mouse
element.addEventListener('mouseup', function(){
mySelection(element)
});
// register "keyup" event for the keyboard
element.addEventListener('keyup', function( event ) {
// assuming we need CTRL, SHIFT or CMD key to select text
// only listen for those keyup events
if(event.keyCode == 16 || event.keyCode == 17 || event.metaKey) {
mySelection(element)
}
});
});
textarea {
resize: none;
width: 50%;
height: 50px;
margin: 1rem auto;
}
<textarea>I am a student and I want to become a good person</textarea>