设法从文本区域中获取突出显示的文本并将其传输到另一个文本区域。但是,当编辑代码以便从 div 中获取突出显示的文本时,它不起作用......
有什么想法为什么会发生这种情况吗?谢谢。
<div id="quote"> load transcript in here instead and grab text from here</div> // does not work
<textarea id="quote" readonly> // works
load transcript in here
</textarea>
<textarea contenteditable="false" id="output" name="selected"></textarea> // outputs highlighted text here
<script>
var quotearea = document.getElementById('quote')
var output = document.getElementById('output')
quotearea.addEventListener('mouseup', function(){
if (this.selectionStart != this.selectionEnd){ // check the user has selected some text inside field
var selectedtext = this.value.substring(this.selectionStart, this.selectionEnd)
output.innerHTML = selectedtext
}
}, false)
</script>
fiddle :
请您参考如下方法:
我在评论中回答了你的问题并将其删除。
您使用的 selectionStart
和 selectionEnd
方法仅适用于输入元素。对于您的解决方案,请改用 document.selection.createRange().text
来获取文档中选定的文本(输入、div 等,无关紧要)。
这是 fiddle :