如何制作带有换行符的复制到剪贴板功能

3
我正在尝试立即将文本复制到剪贴板中的新行。当我单击复制按钮,然后将其粘贴到(帖子、网站、博客、论坛、记事本等)中时,它将与您复制的内容相同。 更多解释: 这是在我复制之前该文本的外观。
Some commonly sold digital good include:
1- eBooks.
2- Audiobooks.
3- Pictures and Videos.
4- Digital Music.
5- Software programs.

然而,当我将其复制粘贴到记事本中时,它只会以一行的形式出现,就像这样:

一些常见的数字产品包括:1- 电子书。2- 音频书籍。3- 图片和视频。4- 数字音乐。5- 软件程序。

这里是我所说的JS代码。

function copyToClipboard(element) {
    var $temp = $("<input>");
    $("body").append($temp);
    $temp.val($(element).text()).select();
    document.execCommand("copy");
    $temp.remove();
}

 var addrsField = $('.input_copy .txt');
$('.input_copy .icon').click(function() {
        copyToClipboard('.input_copy .txt');
        addrsField.addClass('flashBG').delay('1000').queue(function(){
            addrsField.removeClass('flashBG').dequeue();
        });
    });

如果可能的话,我希望文本的外观与我们首次复制它时相同。

这是CodePen的代码 https://codepen.io/null000/pen/wjqYVN


2
input元素不能包含换行符,其内容为纯文本。请使用textarea代替input - Teemu
尝试将 $temp 设为 <textarea>,通过句点分隔 element,并在每个句点后添加 \n - acaputo
只需将 temp 作为文本区域即可正常工作:https://codepen.io/anon/pen/JvywRw - Teemu
@ Teemu,是的,你的代码很好用,但我该如何为Windows用户插入\r\n?在哪里插入呢?能否请你添加一下,或者\r\n是否无关紧要?我真的不知道。 - k76
如果源代码包含换行符,剪贴板会自动处理它们,您甚至不用在Windows中担心它们。 - Teemu
1个回答

2

只需要更改:

var $temp = $("<input>");

收件人:

var $temp = $("<textarea>");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接