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

IE11 on Microsoft Surface Javascript Range returns empty / invalid

本文关键字:返回 无效 IE11 上的 Surface Javascript Range Microsoft      更新时间:2023-09-26

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

我使用的工具:

  • GWT
  • Rangy(JS选择/范围库)
  • GWT选择具有相同的结果

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

"[WrappedRange(":0,":1)]"

(消息不是逐字逐句的,从表面复制粘贴很痛苦)

关于可能发生的事情/我如何解决它,有什么想法吗?

我无法使用JS范围来解决问题,就像我对所有其他浏览器一样。我不得不实现一个单独的点击文本检测方法,专门针对Surface。值得庆幸的是,这其实相当容易。

Surface会自动选择您触摸的单词。我以前的方法,使用所有其他设备,需要一个空的/折叠的选择,一个光标,然后从那里展开。但对于曲面,我只需要获取选定的文本,然后清除选定内容。这实际上更容易——尽管这确实意味着我必须有两个独立的方法。