如何在Javascript中计算dblclick事件的文本偏移量
How to compute offset in text on dblclick event in Javascript
我有一个标签,正在上面设置ondblclick
:
<label ondblclick="foo(event);"
style="white-space: pre; font-family: Monospace; font-size: 12px;">
lot's of text here blah blah blah and more...
双击文本中的一个单词时,我会得到对Javascript函数的回调。
我想知道选择的文本中有多少个字符。
我可以使用类似的东西来获得选择本身
(window.getSelection && window.getSelection().toString())
当然,我有文本节点本身,所以我有整个文本。
但是所选内容可能会在文本节点中出现多次——我需要从字符的角度了解偏移量。例如,如果用户双击blah,我想知道它是哪一个。
在这个事件中,我能找到的只是各种X、Y坐标,它们对我来说就像像素——但我有两个滚动条、格式等,所以从像素计算字符偏移量将非常非常困难。
这些信息是在事件数据中的某个地方吗?还是有代码以某种方式计算这些信息?
非常感谢您的帮助。
如果选择在标签节点内开始,则window.getSelection()返回的对象应具有anchorOffset属性,该属性可为您提供所需内容。
window.getSelection().anchorOffset
不过,我不确定跨浏览器兼容性。例如,请参阅以下JSFiddle:
http://jsfiddle.net/Lx5D2/
相关文章:
- 兰吉 |如何在 span 标签上使用单击事件删除突出显示的文本
- 是否<asp:文本框>有一个onFocusLost事件
- 手柄'img'单击事件并插入'alt'使用jQuery将属性转换为文本框
- IE8更改文本区域上的事件侦听器不工作
- 在文本区域禁用javascript定义的keydown事件并恢复默认行为
- 替代输入:基于按钮点击事件的文本更改处理程序
- 使用Javascript代码在文本框上激发退格事件
- 我能从“;输入“;事件是否有更好的方法来跟踪文本更改
- 我可以使用jqgrid的oncellselect事件根据单元格内容将文本颜色更改为蓝色吗
- 我需要使用kineticjs点击事件以任何所需的角度旋转画布中的文本
- EventSource 的响应具有非“文本/事件流”的 MIME 类型(“文本/纯文本”)
- 如何将值从文本框传递到自身事件
- angularjs 使用什么事件从文本输入中获取值
- 如何在按键事件发生后获取文本光标的位置
- 如何使asp文本框的按键事件
- 在onkeyup事件中未检测到文本区域更改
- 将指针事件限制为SVG文本填充
- 在单击事件上从所有类获取文本
- 为什么从子窗口调用时父窗口的 OnChange 事件文本框不起作用
- 不带Jquery的Dom事件文本区域更改