将所选文本粘贴到另一个文本区域

Paste selected text to another textarea

提问人:Oříšek 提问时间:3/14/2021 更新时间:3/14/2021 访问量:377

问:

是否可以使用纯 JS 将选定的文本粘贴到指定的 textarea 中?就我而言,我想在其中一个文本区域中选择文本,当按下 ctrl 和 A 时,所选文本将粘贴到最后一个 (V1) 文本区域。

我发现了类似的情况(https://jsfiddle.net/QenBV/1/),但它仅适用于 1 个输入文本区域,但我有大量文本区域。

        function Addkey(e) {
            if (e.ctrlKey && e.keyCode == 65) {
                e.preventDefault();
                    document.execCommand("copy");
            }
        }
        
        document.addEventListener('keydown', Addkey, false);
<textarea>Text1</textarea><br/>
<textarea>Text2</textarea><br/>
<textarea>Text3</textarea><br/>

<p></p>
<hr/>
<p></p>

<textarea id="V1"></textarea><br/>

JavaScript HTML TextArea 剪贴板

评论

0赞 T J 3/14/2021
对多个人做同样的事情不是问题。捕获+似乎是问题所在。这是硬性要求吗?<textarea>ctrl/cmda
0赞 Oříšek 3/14/2021
一般来说,ctrl/cmd +a 不是硬要求,但按键是。为什么会出现这个问题?我认为按键是我问题中最简单的部分。
0赞 T J 3/14/2021
这是关于模糊的工作:jsfiddle.net/na1396oq

答:

0赞 Bibek Chaulagain 3/14/2021 #1

您可以简单地使用 javascript/jquery 找出聚焦的文本字段,然后在选中时复制文本并将其连接到 V1 文本区域中的现有文本 或者您可以简单地在文本字段的末尾添加一个按钮,单击该按钮时,您可以使用 javascript/jquery 查找每个文本字段的文本并连接每个文本并粘贴到 v1 文本区域

评论

0赞 Leo 3/14/2021
没有标点符号很难阅读整个段落,你能改进一下吗?谢谢。
0赞 Raju Ahmed 3/14/2021 #2

根据您的问题,以下是您要从中将文本复制给其他人的第一个文本区域

<textarea rows="5" cols="80" id="input" onkeyup="copySelected(event)" >One two three</textarea>

并且您要将所选文本粘贴到以下文本区域的

<textarea rows="5" cols="80" id="selection" class="selection"></textarea>
<textarea rows="5" cols="80" id="selection1" class="selection"></textarea>
<textarea rows="5" cols="80" id="selection2" class="selection"></textarea>
<textarea rows="5" cols="80" id="selection3" class="selection"></textarea>
<textarea rows="5" cols="80" id="selection4" class="selection"></textarea>
<textarea rows="5" cols="80" id="selection5" class="selection"></textarea>
<textarea rows="5" cols="80" id="selection6" class="selection"></textarea>

这将是您的纯 javascript 代码。

<script>
function getSelectedText(el) {
    if (typeof el.selectionStart == "number") {
        return el.value.slice(el.selectionStart, el.selectionEnd);
    } else if (typeof document.selection != "undefined") {
        var range = document.selection.createRange();
        if (range.parentElement() == el) {
            return range.text;
        }
    }
    return "";
}

function copySelected(event) {

    if(event.ctrlKey && ())
    var srcTextarea = document.getElementById("input");
    var destTextarea = document.getElementsByClassName("selection");
    var txtd=getSelectedText(srcTextarea);
    <!-- if u want to paste the text only last one of your textarea -->
    
    destTextarea[destTextarea.length-1].value = txtd;
    
    <!-- if u want to paste the text all of the textarea then use following code block -->
    /*
     for(i=0; i<destTextarea.length; i++){
      destTextarea[i].value = txtd;
     }
    */

}

</script>

在这里,当您在第一个文本区域中按“ctrl + a”时,文本将被粘贴到所有其他文本区域中。