保存光标在可编辑div中的位置
创始人
2024-11-22 10:00:45
0

要保存光标在可编辑div中的位置,可以使用Range对象和Selection对象来实现。下面是一个示例代码:

HTML部分:

这是一个可编辑的div。

JavaScript部分:

function saveCursorPosition() {
  var editableDiv = document.getElementById('editableDiv');
  var range = window.getSelection().getRangeAt(0);
  var preSelectionRange = range.cloneRange();
  preSelectionRange.selectNodeContents(editableDiv);
  preSelectionRange.setEnd(range.startContainer, range.startOffset);
  var start = preSelectionRange.toString().length;

  localStorage.setItem("cursorPosition", start);
}

function restoreCursorPosition() {
  var editableDiv = document.getElementById('editableDiv');
  var cursorPosition = localStorage.getItem("cursorPosition");
  var range = document.createRange();
  var sel = window.getSelection();
  var node = editableDiv.firstChild;
  range.setStart(node, cursorPosition);
  range.collapse(true);
  sel.removeAllRanges();
  sel.addRange(range);
}

在这个示例中,我们使用window.getSelection()来获取Selection对象,然后使用getRangeAt(0)来获取当前的Range对象。我们将Range对象的开始位置和结束位置保存到preSelectionRange中,并计算出光标在可编辑div中的偏移量start。然后,我们使用localStorage.setItem()将start保存到本地存储中。

在恢复光标位置的函数中,我们使用localStorage.getItem()来获取之前保存的光标位置start。然后,我们使用document.createRange()创建一个新的Range对象,并使用window.getSelection()获取Selection对象。我们将Range对象的开始位置设置为可编辑div的第一个子节点和start的偏移量,然后将Range对象折叠到起始位置。最后,我们使用sel.removeAllRanges()和sel.addRange(range)来恢复光标位置。

你可以将这些代码添加到你的项目中,并在点击保存和恢复按钮时测试它们。

相关内容

热门资讯

在玩家背景下!wepoker一... 在玩家背景下!wepoker一直输的号能继续打吗,wepoker祈福有用吗,资料教程(发现有挂)在玩...
黑科技教程!wepoker有辅... 黑科技教程!wepoker有辅助吗,wepokerh5破解,项目教程(有挂规律)亲,关键说明,wep...
2026版软件!we poke... 2026版软件!we poker辅助器,wpk免费辅助,手册教程(有挂详情)1、每一步都需要思考,不...
插件辅助挂!红龙poker有辅... 插件辅助挂!红龙poker有辅助吗,hhpoker辅助软件下载,大纲教程(的确有挂)1、hhpoke...
不少玩家反映!aapoker万... 不少玩家反映!aapoker万能辅助器,wepokerplus到底是挂了吗,课程教程(真的有挂)一、...
迎来新发展!aapoker插件... 迎来新发展!aapoker插件,wepoker手机助手,教程书教程(果真有挂)暗藏猫腻,小编详细说明...
据相关数据显示!wepoker... 据相关数据显示!wepoker有人用过吗,We poker辅助器下载,办法教程(有挂方略)1、We ...
日前!hhpkoer辅助挂是真... 日前!hhpkoer辅助挂是真的吗,wepoker透视最简单三个步骤,教材教程(有挂方针)运wepo...
在玩家背景下!hhpoker脚... 在玩家背景下!hhpoker脚本,aapoker插件,手册教程(真的有挂)1、hhpoker脚本免费...
截至目前!aapoker发牌逻... 您好,wejoker私人辅助软件这款游戏可以开挂的,确实是有挂的,需要了解加去威信【13670430...