WordPress编辑器如何在复制和粘贴时保留文本格式



我注意到,当我们从其他地方复制并粘贴一些东西到WordPress编辑器时,它会保留其原始形式。粘贴的数据不仅仅是一些文本,还有HTML和CSS。WordPress是如何做到的?我可以举一个代码的例子或参考它吗?

我假设(我还没有看(它们响应paste事件,并使用ClipboardEvent对象的clipboardData属性的getData方法,向它询问格式化文本(可能会将"text/html"作为格式化参数(。然后,他们获取生成的HTML并将其包含在编辑器中。

例如:如果您将上面段落的文本复制到剪贴板,然后运行此片段并单击片段正文中的任何位置,然后按系统上的粘贴键盘快捷键(Ctrl+V等(,它将显示剪贴板中格式的文本:

document.addEventListener("paste", function(e) {
document.getElementById("output").innerHTML =
(e.clipboardData && e.clipboardData.getData("text/html")) || "";
});
<div>Click here to focus the window, then do a paste</div>
<div id="output"></div>

如果他们没有得到"text/html":的任何东西,他们可能会回到"text/plain"

document.addEventListener("paste", function(e) {
if (e.clipboardData) {
var output = document.getElementById("output");
var str = e.clipboardData.getData("text/html");
if (str) {
console.log("html");
output.innerHTML = str;
} else {
console.log("plain text");
str = e.clipboardData.getData("text/plain");
output.textContent = str;
}
}
});
<div>Click here to focus the window, then do a paste</div>
<div id="output"></div>

最新更新