在 JS 中复制粘贴期间保留样式。 (如何从剪贴板获取样式)
Preserving style during copy past in JS. (how get stile from clipboard)
昨天我写了一篇关于"Sliding Window" Algorithm in MicrosoftVSC editor的*.md
格式的文章,后来我copy/pasted这篇来自md preview的文章(是修饰文,不是 Markdown 代码)到媒体编辑器。我很惊讶样式和标题都被保存了。
问题是:JS 的哪些部分识别剪贴板文本的设计?
P.S。当我在 Notepad
或 Untitled file of MVC
中插入带有样式的复制文本时,它只是一个平面文本。 Medium
编辑器是如何识别样式的,剪贴板中的数据格式是什么?
当我再次从记事本复制纯文本并将其插入到 Medium 编辑器中时,样式没有出现(它们应该出现)。但是很好奇这个样式是怎么传下来的,保存到哪里去了
这个问题的答案在DataTranswer object that holds information about 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));
});
});
昨天我写了一篇关于"Sliding Window" Algorithm in MicrosoftVSC editor的*.md
格式的文章,后来我copy/pasted这篇来自md preview的文章(是修饰文,不是 Markdown 代码)到媒体编辑器。我很惊讶样式和标题都被保存了。
问题是:JS 的哪些部分识别剪贴板文本的设计?
P.S。当我在 Notepad
或 Untitled file of MVC
中插入带有样式的复制文本时,它只是一个平面文本。 Medium
编辑器是如何识别样式的,剪贴板中的数据格式是什么?
当我再次从记事本复制纯文本并将其插入到 Medium 编辑器中时,样式没有出现(它们应该出现)。但是很好奇这个样式是怎么传下来的,保存到哪里去了
这个问题的答案在DataTranswer object that holds information about 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));
});
});