我有虚拟文本,我希望使用普通 JavaScript 将每个突出显示的文本选择存储在数组中。
这是我第一次尝试在另一个文本区域标记中显示单个选择。
<div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Iure sed ea aperiam voluptas error assumenda iusto, sequi unde non, nesciunt autem. Atque eveniet delectus tenetur nostrum quaerat explicabo debitis iste.
Ipsa a nobis voluptatem dolores ducimus reiciendis iste unde, dolorum ut eveniet inventore consequatur illum provident similique quas rem quidem odit officiis eaque illo impedit tenetur quam atque ab! Velit!
Commodi voluptas saepe cupiditate mollitia. Dolores delectus explicabo laborum exercitationem suscipit ullam quod dignissimos molestiae? Animi, commodi quod vel nesciunt ab possimus nostrum explicabo fugiat tenetur magni dolor illo aliquam?
</div>
<textarea
type='text'
id='input'>
</textarea>
<script>
var text = []
function gText (e) {
text = (document.all) ? document.selection.createRange().text : document.getSelection()
document.getElementById('input').value = text
}
document.onmouseup = gText
if (!document.all) document.captureEvents(Event.mouseup)
</script>
现在我想我需要将每个选择推送到数组上 foreach 循环,但我真的不知道如何在没有 jquery 的情况下做到这一点。请问有什么帮助吗?
最佳答案
如果我理解正确的话,您想存储页面上所做的任何选择的值吗?如果是这样的话...
<script>
/**
* Store selection in an array and only store same value once.
*/
var selectionArray = [];
function storeSelection(e){
var selectedText = window.getSelection().toString();
if(selectedText.length && selectionArray.indexOf(selectedText) === -1){
selectionArray[selectionArray.length] = selectedText;
}
console.log(selectionArray);
}
document.addEventListener('mouseup', storeSelection);
</script>
关于javascript - 将每个突出显示的选择存储在数组中 Vanilla Js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48197073/