vue开发常用css,js 篇2(持续更新)

vue开发常用css,js 篇1已完结了,总共有37个知识点,有需要的小伙伴可以点击链接跳转过去

目录标题

      • [1、contenteditable 属性的标签中获取光标的位置](#1、contenteditable 属性的标签中获取光标的位置)

1、contenteditable 属性的标签中获取光标的位置

篇1中第37个点,也是实现这个问题,但是比较复杂,所以优化迭代了一版,现在一起来看看吧

直接获取 innerHtml 中range.startContainer.data 的位置 ,加上startOffset 的位置即可获取位置

javascript 复制代码
export function getCursorPosition(domId) {
  var cursorPos = 0;
  var selection = window.getSelection();
  const el = document.getElementById(domId);
  let htmlChars = el.innerHTML;
  cursorPos = selection.focusOffset;
  if (selection.rangeCount > 0) {
    const range = selection.getRangeAt(0);
    let pos = htmlChars.indexOf(range.startContainer.data);
    cursorPos = pos + range.startOffset;
  }
  console.log("光标位置:", cursorPos);
  return splitHtmlStringAtPosition(el.innerHTML, cursorPos);
}
export function splitHtmlStringAtPosition(inputString, position) {
  return [inputString.slice(0, position), inputString.slice(position)];
}
相关推荐
默_笙11 小时前
🚦 请三个 AI 考官给 RAG 打分:量化评估实战(下)
前端·javascript
阿坨11 小时前
灵感闪存卡:一款 Tampermonkey用户脚本
javascript·tampermonkey
朝朝辞暮i13 小时前
C++ 第 25 课:getter / setter + this
java·javascript·c++
蜗牛互联网13 小时前
Python接入Gemini 3.8 Flash实现票据视觉抽取与规则校验
java·javascript·网络·人工智能·python
易朵朵14 小时前
CSS 格式化上下文
css·vue.js
xieter14 小时前
【技术精选】深入浅出现代前端渲染与性能优化实践指南 (2026-10-04)
前端·javascript
xieter14 小时前
【硬核实战】TypeScript Compiler API: Preserving Child Node Narrowing in Reusable Type Guards 🔧 (2026-10-03)
前端·javascript
xieter14 小时前
【硬核实战】React 19 useFormStatus Returning False? I Built a SubmitButton That Fixes It (2026-10-03)
前端·javascript
雪芽蓝域zzs15 小时前
第6节:远程搜索弹窗(remote 模式),弹窗滚动加载分页
vue.js·elementui
paopaokaka_luck16 小时前
非遗文物数字化小程序(AI非遗问答、ONNX图像识别、协同过滤推荐、ECharts数据分析、非遗知识浏览与互动、文创商城订单闭环、文化活动报名签到、社区交流)
javascript·spring boot·mysql·数据分析·echarts·mybatis