铬插入符号在非活动窗口中不可见 - 不适合拖放

Chrome caret invisible in inactive window - bad for drag&drop

本文关键字:不适合 拖放 符号 插入 非活动 窗口      更新时间:2023-09-26

在Chrome中将内容拖到内容可编辑区域时,为了能够捕获"drop"事件,需要在每个"dragover"事件上调用e.preventDefault();

这会隐藏插入符号,它会告诉您要放在哪里。这可以通过在document.caretRangeFromPoint()手动更新插入符号位置来规避。

除非窗口处于非活动状态,否则这将完美工作 - 然后插入符号是不可见的。

小提琴:http://jsfiddle.net/zupa/mezAm/

有没有办法在不使用帮助程序的情况下使其可见?

事实证明,您不必dragover事件中调用e.preventDefault(),即使窗口处于非活动状态,也会显示光标。(因此,默认浏览器行为是显示下沉插入符号。所有教程都指出,您必须调用它才能捕获drop事件。我相信你只需要return false.

我只用Firefox 13.0.1和Chrome 19.0.1084.56测试过(其他浏览器现在还没有实现drop事件。