我有一个显示文本的应用程序,当单击文本时,确定单击的单词并触发包含该信息的事件。单词检测通过JavaScript Selection - Range对象执行。这适用于所有桌面浏览器,以及Nexus 7和iPad。但是,在MS Surface上,返回的范围无效。在其他浏览器可以返回范围端点的有效节点的情况下,表面上只有一个空格,偏移量为0 - 两者都不准确。
我正在使用的工具:
同样,在其他浏览器/设备中,rangy.getSelection()。getRangeAt(0).inspect()返回节点信息和有效偏移量,但在Surface上,我什么也得不到,只是一个空检查,类似于:< / p>
“[WrappedRange(”“:0,”“:0)]”
(不是逐字记录,从Surface复制粘贴是一种痛苦)
关于可能发生的事情/如何解决问题的任何想法?
答案 0 :(得分:0)
我无法使用JS系列解决问题,因为我适用于所有其他浏览器。我必须专门为Surface实现一个单独的单击文本检测方法。值得庆幸的是,它实际上相当容易。
Surface会自动选择您触摸的单词。我以前的方法,与所有其他设备一起使用,需要一个空/折叠选择,一个光标,然后从那里扩展。但是对于Surface,我只需要获取所选文本并在之后清除选择。它实际上更容易 - 虽然它确实意味着我必须有两个不同的方法。