Сохранение стиля при копировании в JS. (как получить из буфера обмена) - PullRequest
0 голосов
/ 08 февраля 2020

Вчера я написал статью об алгоритме «скользящего окна» в редакторе MicrosoftVS C в формате *.md, позже я скопировал / вставил эту статью из md preview (Это оформленный текст, а не код уценки) для среднего редактора. И я был удивлен тем, что стиль и заголовки сохраняются.

Вопрос в том, какие части JS распознают дизайн текста из буфера обмена?

PS Когда я вставляю этот скопированный текст со стилями внутри Notepad или Untitled file of MVC это просто плоский текст. Как редактор Medium распознал стиль, какой формат данных в буфере обмена?

Когда я снова копирую этот простой текст из блокнота и вставляю его в редактор Medium, стили не отображаются (так как им следует). Но любопытно, как эти стили прошли и где они сохранены.

1 Ответ

0 голосов
/ 08 февраля 2020

Ответ на этот вопрос лежит в DataTranswer объекте, который содержит информацию о событии paste . Этот объект содержит различные версии сохраненного текста. Одна версия plain/text вторая версия text/html. text/html версии содержат украшения.

console.log("Checking paste operation.")
document.addEventListener('paste', function(e) {
        console.log("The Past is Happens");
        console.log(e.clipboardData.types);
        ['text/plain','text/html'].forEach( format =>{
          console.log(`Format: ${format}`);
          console.log(e.clipboardData.getData(format));
        });
    });
...