Javascript 保存文本光标的位置
我有一段代码,我把文本光标放在一块文本中Javascript 保存文本光标的位置,javascript,cursor,Javascript,Cursor,我有一段代码,我把文本光标放在一块文本中 <h2 id="textareaEdit" contenteditable="true"> text text text<br>text text text<br> </h2> <button onclick="textPlace()">focus</button> <script> function textPlace() { var el = documen
<h2 id="textareaEdit" contenteditable="true">
text text text<br>text text text<br>
</h2>
<button onclick="textPlace()">focus</button>
<script>
function textPlace() {
var el = document.getElementById("textareaEdit");
var range = document.createRange();
var sel = window.getSelection();
range.setStart(el.childNodes[2], 5);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
el.focus();
}
</script>
文本
文本
集中
函数textPlace(){
var el=document.getElementById(“textareaEdit”);
var range=document.createRange();
var sel=window.getSelection();
range.setStart(el.childNodes[2],5);
范围。塌陷(真);
选择removeAllRanges();
选择添加范围(范围);
el.focus();
}
我想知道,当用户键入文本光标,然后单击页面的另一部分,然后按下按钮返回同一位置时,是否有办法保存文本光标的位置
有什么办法吗?我已经尝试这样做了几天,但似乎无法获得任何代码来保存光标的位置,因此您只想在他们单击按钮时将焦点设置在表单元素上?是的,在特定位置,就像代码当前所做的那样。但除了保存他们过去的文本光标位置之外,还有额外的功能。这应该会有所帮助:如果您正在离开页面并返回,您可以使用本地存储来保存值。您基本上可以在文本区域上创建一个自定义事件处理程序,例如
onfocusout
,然后使用selectionStart
获取位置。将其保存在变量中,并使用它在focus
事件上再次设置位置。页面访问之间的存储通过cookie完成。(document.cookie)