javascript - 在 JS 中复制粘贴时保留样式。 (如何从剪贴板获取样式)

标签 javascript styles editor clipboard

昨天我在MicrosoftVSC编辑器中以*.md格式写了一篇关于“滑动窗口”算法的文章,后来我从md preview复制/粘贴了这篇文章(这是一个装饰文本,而不是 Markdown 代码)对于中等编辑器。我很惊讶样式和标题被保存了。

问题是:JS 的哪些部分可以识别剪贴板中文本的设计?

附注当我在 NotepadUntitled file of MVC 中插入带有样式的复制文本时,它只是一个平面文本。 Medium编辑器如何识别样式,剪贴板中的数据格式是什么?

当我再次从记事本复制此纯文本并将其插入到 Medium 编辑器中时,样式不会出现(它们应该出现)。但很好奇这些样式是如何传递的以及它们保存在哪里。

最佳答案

这个问题的答案在 DataTranswer包含有关 paste 的信息的对象事件。该对象保存已保存文本的不同版本。第一个版本是 plain/text 第二个版本是 text/htmltext/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));
        });
    });

关于javascript - 在 JS 中复制粘贴时保留样式。 (如何从剪贴板获取样式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60125746/

相关文章:

android - 以编程方式删除操作栏阴影

vim - 如何使用函数返回的值进行搜索

c# - Visual Studio 图标的含义

javascript - 如何使用按钮切换嵌套列表

javascript - 在 React + Redux 中使用状态数据在浏览器上进行后退/前进时内容不会改变

javascript - 当我们点击附件图标时,会弹出诸如 WhatsApp 之类的选项

html - 消除填充的麻烦

javascript - 'this' 在 javascript 中如何工作?

html - 在电子邮件中设置 tr 或 td 样式?

editor - 带表格的 Markdown 编辑器