Javascript 如何在替换contenteditable元素中的文本时将插入符号保留在其当前位置
我有一个Javascript 如何在替换contenteditable元素中的文本时将插入符号保留在其当前位置,javascript,Javascript,我有一个。当我移动到列表或表格后面的新行时,我得到 <div><br></div> 但是这没有用我自己找到了答案: if(~this.innerHTML.indexOf('<div><br></div>')) { var newLine = document.createElement('p'); newLine.innerHTML = '<br>'; var selection = w
。当我移动到列表或表格后面的新行时,我得到
<div><br></div>
但是这没有用我自己找到了答案:
if(~this.innerHTML.indexOf('<div><br></div>')) {
var newLine = document.createElement('p');
newLine.innerHTML = '<br>';
var selection = window.getSelection();
var newDivNode = selection.anchorNode;
this.insertBefore(newLine, newDivNode);
this.removeChild(newDivNode);
var range = document.createRange();
range.setStart(newLine, 0);
range.setStart(newLine, 0);
selection.removeAllRanges();
selection.addRange(range);
}
if(~this.innerHTML.indexOf('
')){
var newLine=document.createElement('p');
newLine.innerHTML=“
”;
var selection=window.getSelection();
var newDivNode=selection.anchorNode;
this.insertBefore(换行符、newDivNode);
this.removeChild(newDivNode);
var range=document.createRange();
range.setStart(换行符,0);
range.setStart(换行符,0);
selection.removeAllRanges();
选择。添加范围(范围);
}
var range = document.createRange();
range.selectNodeContents(this);
var selection = window.getSelection();
range.setStart(selection.anchorNode, selection.anchorOffset);
selection.removeAllRanges();
selection.addRange(range);
if(~this.innerHTML.indexOf('<div><br></div>')) {
var newLine = document.createElement('p');
newLine.innerHTML = '<br>';
var selection = window.getSelection();
var newDivNode = selection.anchorNode;
this.insertBefore(newLine, newDivNode);
this.removeChild(newDivNode);
var range = document.createRange();
range.setStart(newLine, 0);
range.setStart(newLine, 0);
selection.removeAllRanges();
selection.addRange(range);
}