Как скопировать текст и переводы строк в JS - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть такой текст

text = 'line 1' + "\r\n";
text+= 'line 2' + "\r\n";
text+= 'line 3' + "\r\n";

Я использую эту функцию, чтобы скопировать его в буфер обмена

function copyToClipboard(text)
{

    var copyElement = document.createElement("span");
    copyElement.appendChild(document.createTextNode(text));
    copyElement.id = 'tempCopyToClipboard';
    angular.element(document.body.append(copyElement));

    // select the text
    var range = document.createRange();
    range.selectNode(copyElement);
    window.getSelection().removeAllRanges();
    window.getSelection().addRange(range);

    // copy & cleanup
    document.execCommand('copy');
    window.getSelection().removeAllRanges();
    copyElement.remove();
}

как я могу скопировать его в буфер обмена без потери перевода строки?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

извините, мой плохой, я скопировал этот фрагмент, но я только что понял, что должен использовать текстовую область, а не диапазон.

0 голосов
/ 04 декабря 2018

Похоже, это работает для меня, когда я определяю текст внутри вашей функции.Вы уверены, что новые строки передаются в функцию так, как вы ожидаете?

function copyToClipboard()
{
    var text = 'line 1' + "\r\n";
    text+= 'line 2' + "\r\n";
    text+= 'line 3' + "\r\n";
    
    var copyElement = document.createElement("span");
    copyElement.appendChild(document.createTextNode(text));
    copyElement.id = 'tempCopyToClipboard';
    angular.element(document.body.append(copyElement));

    // select the text
    var range = document.createRange();
    range.selectNode(copyElement);
    window.getSelection().removeAllRanges();
    window.getSelection().addRange(range);

    // copy & cleanup
    document.execCommand('copy');
    window.getSelection().removeAllRanges();
    copyElement.remove();
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<button type="button" onclick="copyToClipboard()">Copy text to clipboard</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...