vue项目中在可编辑div光标位置插入内容的实现代码
vue项目中在可编辑div光标位置插入内容
html:
{{item.labelName}}
methods:
insertHtmlAtCaret(html){
letsel,range;
if(window.getSelection){
//IE9andnon-IE
sel=window.getSelection();
if(sel.getRangeAt&&sel.rangeCount){
range=sel.getRangeAt(0);
range.deleteContents();
letel=document.createElement("div");
el.appendChild(html)
varfrag=document.createDocumentFragment(),node,lastNode;
while((node=el.firstChild)){
lastNode=frag.appendChild(node);
}
range.insertNode(frag);
if(lastNode){
range=range.cloneRange();
range.setStartAfter(lastNode);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
}
}elseif(document.selection&&document.selection.type!="Control"){
//IE<9
document.selection.createRange().pasteHTML(html);
}
},
//开始拖动可选字段
dragStart(event,name){
event=event||window.event;
this.dragging=name;//str
event.dataTransfer.setData("","");//forfirefox
},
//阻止默认事件
allowDrop(event){
lete=event||window.event;
if(e&&e.preventDefault){
e.preventDefault();
}else{
window.event.returnValue=false;
}
},
//拖动到指定位置并释放
dropRelease(event,nodeValueName){
event=event||window.event;
event.preventDefault();
lettextNode=document.createElement('input');
textNode.className='mg-lr5enabledTag';
textNode.type='button';
textNode.value=this.dragging||nodeValueName;
this.insertHtmlAtCaret(textNode);
this.dragging='';
},
总结
以上所述是小编给大家介绍的vue项目中在可编辑div光标位置插入内容的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。