Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在替换contenteditable元素中的文本时将插入符号保留在其当前位置_Javascript - Fatal编程技术网

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);
}