设法从文本区域中获取突出显示的文本并将其传输到另一个文本区域。但是,当编辑代码以便从 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 :

https://jsfiddle.net/Lzgyh2kd/

请您参考如下方法:

我在评论中回答了你的问题并将其删除。

您使用的 selectionStartselectionEnd 方法仅适用于输入元素。对于您的解决方案,请改用 document.selection.createRange().text 来获取文档中选定的文本(输入、div 等,无关紧要)。

这是 fiddle :

Working demo


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!