contenteditable="true" ctrl_enter,shift+enter-->换行,监听粘贴事件实现粘贴去掉文本样式
html :
<div id="inputArea" ref="inputBox" class="input-box-style" contenteditable="true" tabindex="1" @keydown="eventListen"> </div>
script:
```
eventListen(event) {
let allowKey = [8, 13, 37, 38, 39, 40]; // 上下左右 回车 删除
if (event.keyCode === 13&& !(event.shiftKey)) {
event.preventDefault();
return false;
}
// shift+回车-->换行
if (event.shiftKey && event.keyCode == 13) {
this.contenteditableDivRange()
return false;
}
},
contenteditableDivRange(){
var docFragment = document.createDocumentFragment();
//add the br, or p, or something else
var newEle = document.createElement('br');
docFragment.appendChild(newEle);
//make the br replace selection
var range = window.getSelection().getRangeAt(0);
range.deleteContents();//从文档中移除 Range 包含的内容
range.insertNode(docFragment);//在 Range 的起点处插入一个节点
//create a new range
range = document.createRange();
range.setStartAfter(newEle);//以其它节点为基准,设置 Range 的起点
range.collapse(true);//将 Range 折叠至其端点之一
//make the cursor there
var sel = window.getSelection();
sel.removeAllRanges();//将所有的区域都从选区中移除
sel.addRange(range);//一个区域(Range)对象将被加入选区
},
```
监听粘贴,去掉复制文本的样式,放过图片
mounted() {
let target=document.getElementById("inputArea")
target.addEventListener('paste',(event)=>{
this.textPaste(event)
})
}
//处理粘贴
textPaste(event){
event.preventDefault()
let newText
// let newHtml
let clp=(event.originalEvent||event).clipboardData
//兼容针对opera ie等浏览器
if(clp=== undefined||clp===null){
newText=window.clipboardData.getData("text")||""
if(newText!==""){
if(window.getSelection){
//针对IE11 10 9 safari
let newNode=document.createElement("span")
newNode.innerHTML=newText
window.getSelection().getRangeAt(0).insertNode(newNode)
}else{
//兼容ie 10 9 8 7 6 5
document.selection.createRange().past
}
}
}else{
// 兼容chrome或hotfire
newText=clp.getData('text/plain')||""
let file = clp.items&&clp.items[0];
// newHtml=clp.getData('text/html')||""
if(newText!==""){
document.execCommand('insertText',false,newText)
}else if (file && /image\/\w+/i.test(file.type)) {
// 类型为图片, 并且文件大小不为 0
this.imgReader(file)
}
}
},
imgReader(item){
var blob = item.getAsFile(),
reader = new FileReader();
reader.onload = function(e) {
var img = new Image();
img.src = e.target.result;
console.log('e', e)
document.getElementById("inputArea").appendChild(img);
};
reader.readAsDataURL(blob);
}

浙公网安备 33010602011771号