我关注了这个问题JavaScript 在粘贴事件上获取剪贴板数据(跨浏览器)从剪贴板获取粘贴的数据,但我使用了jquery。现在我得到了数据,我删除了所有 html 标签。但我不知道怎么粘贴。element
is a contenteditable div
element.on('paste', function (e) {
var clipboardData, pastedData;
e.preventDefault();
// Get pasted data via clipboard API
clipboardData = e.clipboardData || window.clipboardData || e.originalEvent.clipboardData;
pastedData = clipboardData.getData('Text').replace(/<[^>]*>/g, "");
// How to paste pasteddata now?
console.log(pastedData);
});
我找到了答案,我将分享它。为了清理剪贴板中的 html 标签,您应该粘贴以下内容:
element.on('paste', function (e) {
e.preventDefault();
var text;
var clp = (e.originalEvent || e).clipboardData;
if (clp === undefined || clp === null) {
text = window.clipboardData.getData("text") || "";
if (text !== "") {
text = text.replace(/<[^>]*>/g, "");
if (window.getSelection) {
var newNode = document.createElement("span");
newNode.innerHTML = text;
window.getSelection().getRangeAt(0).insertNode(newNode);
} else {
document.selection.createRange().pasteHTML(text);
}
}
} else {
text = clp.getData('text/plain') || "";
if (text !== "") {
text = text.replace(/<[^>]*>/g, "");
document.execCommand('insertText', false, text);
}
}
});
Credit: l2aelba
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)