从别的地方复制文本时连样式一块复制过来了,如何清除原本的标签和样式呢?
function textFormat (e) {
e.preventDefault()
var text
var clp = (e.originalEvent || e).clipboardData
if (clp === undefined || clp === null) {
text = window.clipboardData.getData('text') || ''
if (text !== '') {
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 !== '') {
document.execCommand('insertText', false, text)
}
}
}
使用:
document.getElementById('editArea').addEventListener('paste', function (e) {
textFormat (e)
})
参考:https://stackoverflow.com/que...
示例:(可能打不开)
http://jsfiddle.net/ch6yn/
下面是我自己写的示例:
<div id="editArea" contenteditable oninput="this.innerHTML = this.innerText">
</div>
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
5 回答1.9k 阅读
兼容ie11,edge,chrome,firefox,safari: