html文本标签怎么粘贴,【Web前端问题】如何清除向可编辑的(contenteditable)元素里粘贴的文本的标签和样式?...

从别的地方复制文本时连样式一块复制过来了,如何清除原本的标签和样式呢?

e0dc32fdf1948ff91cdd5b226b023795.png

39126c30b0a4e076f5f8392dcf463744.png

回答:

兼容ie11,edge,chrome,firefox,safari:

var element = document.createElement('div');

element.contentEditable = true;

element.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);

}

});

回答:

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)

})

回答:

下面是我自己写的示例:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值