Javascript文档.getSelection()在iOS设备上不工作

Javascript文档.getSelection()在iOS设备上不工作,javascript,ios,browser,Javascript,Ios,Browser,我一直在为iOS设备构建一个javascript应用程序,它需要能够直接在点击事件下面获取单词,以便定义它。 使用以下js代码 var s = e.browserEvent.currentTarget.getSelection(); s.modify('extend','backward','word'); var b = s.toString(); s.modify('extend','forward','word'); var a = s.toStrin

我一直在为iOS设备构建一个javascript应用程序,它需要能够直接在点击事件下面获取单词,以便定义它。 使用以下js代码

var s = e.browserEvent.currentTarget.getSelection();
s.modify('extend','backward','word');        
var b = s.toString();           
s.modify('extend','forward','word');
var a = s.toString();
s.modify('move','forward','character');
alert(b + a);
它可以在浏览器(chrome和safari)中运行,但在ipad等设备上运行时,getSelection不会返回任何内容。 有人知道如何让它工作吗


提前干杯

对于那些在将来发现这个问题的人。确保尝试调用getSelection()的元素的css中包含以下内容:

user-select: text;
-webkit-user-select: text;

此问题经常出现在内容可编辑元素上。

我只在iOS 12上遇到过此问题(在iOS 11、10、9上工作正常)

我找到了一个干净的解决方案: 看看这个:

它使用click事件对象(我认为比window.getSelection更干净):


它在iOS 12上运行得非常好。

Mobile Safari绝对支持
window.getSelection()
,我认为它的别名是
document.getSelection()
。您确定
e.browserEvent.currentTarget
是文档吗?我尝试了window和document.getSelection(),但两者仍然返回null。我已经使用警报进行了测试,以查看设备认为currentTarget变量是什么对象,它似乎就是文档。因此,尽管在桌面浏览器上只需单击一次,看起来您实际上可能需要选择文本才能工作。虽然我希望情况不是这样,因为这违背了我所要做的事情的目的!
var range = document.caretRangeFromPoint(event.clientX, event.clientY);