Javascript 如何以字母形式查找鼠标指针在跨度中的位置

Javascript 如何以字母形式查找鼠标指针在跨度中的位置,javascript,html,Javascript,Html,单击span元素时,如何在其字母之间找到鼠标指针的位置 我的意思是:我正在尝试编写一个所见即所得编辑器,而不使用设计模式(类似于谷歌文档文字处理器)。当用户点击文本时,我想得到鼠标指针在点击范围内的位置,不是像素而是字母 g-docs文字处理器是如何做到这一点的 谷歌代码看起来很奇怪,充满了以单个字母命名的函数。首先,这是一个很高的要求。祝你好运你会想看看你是否会支持IE 对于性能良好的浏览器,请使用document.getSelection()和selection.getRangeAt(0)这

单击span元素时,如何在其字母之间找到鼠标指针的位置

我的意思是:我正在尝试编写一个所见即所得编辑器,而不使用设计模式(类似于谷歌文档文字处理器)。当用户点击文本时,我想得到鼠标指针在点击范围内的位置,不是像素而是字母

g-docs文字处理器是如何做到这一点的


谷歌代码看起来很奇怪,充满了以单个字母命名的函数。

首先,这是一个很高的要求。祝你好运你会想看看你是否会支持IE

对于性能良好的浏览器,请使用
document.getSelection()
selection.getRangeAt(0)
这是一个演示,您可以看到它的实际应用。点击Hello World文本。 .

我没有找到托管Rangy的CDN,因此无法发布示例,但代码基本相同:

function clickHandler() {
  var selection = rangy.getSelection();
  var range = selection.getRangeAt(0);
  alert('You clicked on character: ' + range.startOffset);
  console.log(range);
}

首先,这是一项艰巨的任务。祝你好运你会想看看你是否会支持IE

对于性能良好的浏览器,请使用
document.getSelection()
selection.getRangeAt(0)
这是一个演示,您可以看到它的实际应用。点击Hello World文本。 .

我没有找到托管Rangy的CDN,因此无法发布示例,但代码基本相同:

function clickHandler() {
  var selection = rangy.getSelection();
  var range = selection.getRangeAt(0);
  alert('You clicked on character: ' + range.startOffset);
  console.log(range);
}

谷歌代码看起来很奇怪,因为它已经被压缩,所以Javascript代码占用了尽可能少的空间,但仍然可以工作。这意味着函数和变量经常被重命名为只有1或2个字符长。谷歌的代码看起来很奇怪,因为它已经被缩小-压缩,所以Javascript代码占用尽可能少的空间,但仍然可以工作。这意味着函数和变量经常被重命名为只有1或2个字符长。这也有助于混淆(更难阅读和理解)他们的专有代码。谢谢你,这正是我想要的!谢谢你的回答,非常有用。输入更简单,输入有两个属性:selectionStart和selectionEnd。谢谢,这正是我想要的!谢谢你的回答,非常有用。输入更简单,输入有两个属性:selectionStart和selectionEnd。