我有一个contenteditable的div标签,以便用户可以键入div。 如果用户选择一些文本使其变为粗体,则执行以下代码:
browser.execute("document.execCommand(\"Bold\");
document.getElementById(\"EditDIV\").focus()");
执行后,焦点丢失,浏览器中的垂直滚动条移动到浏览器的顶部。 我希望光标停留在之前的文本中。
我尝试了以下内容:
存储选择位置x,y:
代码:
cursorPos=document.selection.createRange().duplicate(); clickx = cursorPos.getBoundingClientRect().left; clicky = cursorPos.getBoundingClientRect().top;
恢复选择位置:
代码:
cursorPos = document.body.createTextRange(); cursorPos.moveToPoint(clickx, clicky); cursorPos.select();
但是此代码在浏览器中查找所选文本相对于当前视图开头的位置。因此,光标停留在相同位置,但文本向下移动。
期望光标停留在所选的文本上。