Microsoft Surface Javascript Range上的IE11返回空/无效

时间:2014-04-24 17:29:36

标签: javascript touch range internet-explorer-11 rangy

我有一个显示文本的应用程序,当单击文本时,确定单击的单词并触发包含该信息的事件。单词检测通过JavaScript Selection - Range对象执行。这适用于所有桌面浏览器,以及Nexus 7和iPad。但是,在MS Surface上,返回的范围无效。在其他浏览器可以返回范围端点的有效节点的情况下,表面上只有一个空格,偏移量为0 - 两者都不准确。

我正在使用的工具:

同样,在其他浏览器/设备中,rangy.getSelection()。getRangeAt(0).inspect()返回节点信息和有效偏移量,但在Surface上,我什么也得不到,只是一个空检查,类似于:< / p>

  

“[WrappedRange(”“:0,”“:0)]”

(不是逐字记录,从Surface复制粘贴是一种痛苦)

关于可能发生的事情/如何解决问题的任何想法?

1 个答案:

答案 0 :(得分:0)

我无法使用JS系列解决问题,因为我适用于所有其他浏览器。我必须专门为Surface实现一个单独的单击文本检测方法。值得庆幸的是,它实际上相当容易。

Surface会自动选择您触摸的单词。我以前的方法,与所有其他设备一起使用,需要一个空/折叠选择,一个光标,然后从那里扩展。但是对于Surface,我只需要获取所选文本并在之后清除选择。它实际上更容易 - 虽然它确实意味着我必须有两个不同的方法。