Есть приложение на Angular 6 в котором используется typescript соответственно. Есть кнопка копирования статистики из разных частей страницы. Для копирования написан ClipboardService который работает ClipboardService.copyToClipboard(text); и с ним все ок.
Проблема в том что данные нужно разделить по строкам так что-бы при вставке их в текстовый файл переносы строк сохранялись. Я пытался делать это так:
const text = 'a\nb';
ClipboardService.copyToClipboard(text);
Но разделитель копируется в буфер обмена как символ, вместо того чтобы делать перенос строки.
И в файле при вставке вместо:
a
b
Я получаю:
a\nb
Как можно реализовать такое поведение чтобы я мог определять где будет перенос строки?
Вот ClipboardService на всякий случай:
export class ClipboardService {
static copyToClipboard(toCopy : any) : void {
document.addEventListener('copy', (e : ClipboardEvent) => {
const data = JSON.stringify(toCopy)
e.clipboardData.setData('text/plain', data);
e.preventDefault();
});
document.execCommand('copy');
}
}
Спасибо.
Проблема в использовании JSON.stringify. Который при применении к строке экранирует спецсимволы.
Если его убрать - то при вставке все будет отлично:
class ClipboardService {
static copyToClipboard(toCopy) {
document.addEventListener('copy', (e) => {
e.clipboardData.setData('text/plain', toCopy);
e.preventDefault();
console.log('copied');
});
document.execCommand('copy');
}
}
ClipboardService.copyToClipboard('a\nb');
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости