问题: 使用contenteditable="true"
的div
元素,使用粘贴功能时会携带复制文本的样式,造成样式的错乱。在某些浏览器下,粘贴从word复制过来的文本还会把word中的格式也粘贴进来,导致功能的错误。所以针对contenteditable
粘贴格式的问题,给出了以下的解决方案。
<div contenteditable="true"></div>
解决方案:
兼容ie11,edge,chrome,firefox,safari:
document.querySelector('div[contenteditable="true"]').addEventListener("paste", function(e) {
e.stopPropagation();
e.preventDefault();
var text = '', event = (e.originalEvent || e);
if (event.clipboardData && event.clipboardData.getData) {
text = event.clipboardData.getData('text/plain');
} else if (window.clipboardData && window.clipboardData.getData) {
text = window.clipboardData.getData('Text');
}
if (document.queryCommandSupported('insertText')) {
document.execCommand('insertText', false, text);
} else {
document.execCommand('paste', false, text);
}
});