【问题标题】:How to compute offset in text on dblclick event in Javascript如何在Javascript中计算dblclick事件的文本偏移量
【发布时间】:2013-08-02 01:55:45
【问题描述】:

我有一个标签并在上面设置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 坐标,它们在我看来像像素——但我有两个滚动条、格式等,因此计算像素的字符偏移量将非常非常困难。

此信息是否在事件数据中的某处,或者是否有用于以某种方式计算此信息的代码?

非常感谢任何帮助。

【问题讨论】:

    标签: javascript dom-events offset double-click getselection


    【解决方案1】:

    如果选择从 label 节点开始,则 window.getSelection() 返回的对象应该有一个 anchorOffset 属性,它可以为您提供所需的内容。

    window.getSelection().anchorOffset
    

    不过,我不确定跨浏览器的兼容性。例如,请参阅此 JSFiddle:

    http://jsfiddle.net/Lx5D2/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      • 2015-03-15
      • 1970-01-01
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多