我有一个场景,其中有一些文本应该是可选的。问题是,它上面有一个UI叠加层,默认情况下会阻止选择文本。保留叠加层且仍能选择文本的逻辑方法是使用合成事件(使用document.createEvent
),但由于某种原因,它不像预期那样工作。
事件似乎已经被正确委派并触发了它们的处理程序,但没有选择任何文本。我在这里提供了一个例子(链接),这只是问题的粗略简化。
几点注意事项:
- 在Firefox中,如果你的选择从叠加层外开始,你仍然能够选择你想要的文本,即使它在叠加层下面
- 当你在未覆盖区域有一个正常的选择并单击叠加层时,可以期望委派的
mousedown
事件将删除选择,但实际上不会发生
我是否错过了还应该委托的事件(我有mousedown
、mousemove
和mouseup
)?或者浏览器是否采取某种安全措施来禁用这种行为(参见注释2)?有没有其他建议如何获得所需的结果?我知道我应该彻底解决当前的叠加层方案,但我已经对问题本身感到好奇。