我有以下代码:
document.getElementById("myDiv").addEventListener("keydown", function (e){
if (e.keyCode == 8) {
this.innerHTML += "⠀".repeat(4);
e.preventDefault();
}
//moves cursor
});
<div id="myDiv" contenteditable="true">Enter text.</div>
如何确保光标不会自动移动?
最佳答案
试试这个。
const el = document.getElementById("myDiv");
const sel = window.getSelection();
const offset = sel.getRangeAt(0).startOffset;
el.innerHTML += 'Text needed to be added'; // perform operations here
const nRange = document.createRange();
nRange.setStart(el.childNodes[0], offset);
nRange.collapse(true);
sel.removeAllRanges();
sel.addRange(nRange);
我还没有检查所有浏览器。您必须执行一些额外的步骤才能获得浏览器兼容性,但这就是要点。
关于javascript - 有没有一种简单的方法可以阻止光标在 div contenteditable 中移动,即使使用 JavaScript 添加文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58564024/