TSR*_*TSR 6 javascript jquery copy-paste
我跟着这个问题JavaScript get clipboard data on paste event (Cross browser) 从剪贴板中获取粘贴的数据,但我用 jquery 代替。现在我得到了数据,我删除了所有的 html 标签。但是不知道怎么贴。
element是一个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);
});
Run Code Online (Sandbox Code Playgroud)
我找到了答案,我会分享它。为了从 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);
}
}
});
Run Code Online (Sandbox Code Playgroud)
信用:l2aelba