JavaScript:从鼠标单击获取输入文本位置(以字符为单位)

时间:2013-01-08 02:08:06

标签: javascript text input cursor caret

我有一个HTML <input type="text"><textarea>,其中包含随机现有文字 [12345678]或 [12345
67890]
我在这个文本中有一个任意定位的mousedown点击事件。我需要将2D mousedown点击页面坐标转换为一维的基于字符的文本坐标,以便通过JS正确定位插入符号。显然浏览器有一些内部进行此转换的功能;打电话给我会很高兴。输入具有标准的可变宽度字体,并且可以处于任何放大级别。浏览器仅限于FireFox。我们有JQuery和JCursor。

背景:输入字段是在深层嵌套的框内动态生成的,每个框都有多余的重载。遗留代码与最新的FF实现的组合以某种方式窃取了从输入元素冒出的时间到它到达默认浏览器set-caret动作的时间之间的mousedown传播/焦点,这是没有发生的。我需要自己设置插入符号。

1 个答案:

答案 0 :(得分:0)

此示例的解决方法是对事件使用Level 2 stopPropagation()调用,同时为Level 0 onmousedown处理程序返回true(保持传播)。这样可以避免进一步激活[进入父结构的遗留代码]的2级调用,同时仍然确保在冒泡阶段之后实际执行本地默认操作[放置插入符号]。但是,它仍然没有回答原始问题,其中有其他应用程序。