【问题标题】:Get highlighted text from div and copy into textarea javascript从 div 中获取突出显示的文本并复制到 textarea javascript
【发布时间】:2017-02-17 05:05:30
【问题描述】:

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

小提琴:

https://jsfiddle.net/Lzgyh2kd/

【问题讨论】:

标签: javascript


【解决方案1】:

我在 cmets 中回答了你的问题并删除了它。

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

这是小提琴:

Working demo

【讨论】:

  • 谢谢伙计!该解决方案非常有意义。非常感谢。
  • 仅供参考,小提琴中的代码仅适用于整个文档,不使用特定的选择器,因此如果您只想在不起作用的 div 中使用它。
  • 是的,我注意到,如果有办法解决这个问题,那么它可以从一个很酷的特定选择器中获取,否则无论如何都不应该成为太大的问题。荣誉。
  • 当然,这是可能的。您可以在此处搜索如何创建特定元素的选择范围并获取其内容。如果你没有找到任何东西,我明天早上会给你寄一个小提琴。干杯。
【解决方案2】:

cmets 中的某个人用一个有两个 textarea 的小提琴来回答它,但是将一个编辑为一个 div 并且它似乎可以工作。干杯。 (Edit-原来不需要 div,它直接从页面中获取,所以一种解决方法)

<div name="" id="original">
Load transcript in here.
</div>

<textarea name="" id="copied" cols="30" rows="10"></textarea>

<script>


var text = '';
function copyText(e) {
    text = (document.all) ? document.selection.createRange().text : document.getSelection();
    document.getElementById('copied').value = text;
}
document.onmouseup = copyText;
if (!document.all) {
    document.captureEvents(Event.MOUSEUP);
}


</script>

在这里工作:

https://jsfiddle.net/eLwy4eLp/1/

【讨论】:

    猜你喜欢
    • 2014-03-28
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    相关资源
    最近更新 更多