我正在使用angular 4,并尝试使用contenteditable
<div contenteditable='true' id='editor' [innerHtml]='data'></div>
我需要检测粘贴事件,然后处理数据以删除除粗体、斜体和para之外的所有内联css和HTMl标记,然后将其粘贴为普通文本。
我已通过成功检测到粘贴事件
document.getElementById('editor').addEventListener('paste', handlePaste);
function handlePaste(e) {
var clipboardData, pastedData;
// Stop data actually being pasted into div
clipboardData = e.clipboardData;
pastedData = clipboardData.getData('text/html');
e.stopPropagation();
e.preventDefault();
}
我能够操纵粘贴数据,但无法启动粘贴行为。使用preventDefault和stopPropagation,我能够停止粘贴的默认行为,并且使用getData,我能够从剪贴板中提取数据。但现在我被困在这里,我无法启动粘贴事件。在文档中,我们需要创建一个自定义事件,如
粘贴剪贴板数据(newData)
. 但我可以找到任何关于如何创建这样的活动的参考资料。
//由于我们正在取消粘贴操作,因此需要手动
//将数据粘贴到文档中。
粘贴剪贴板数据(newData);
https://w3c.github.io/clipboard-apis/#override-paste