如何在Firefox上的"拖动"事件处理程序中使用clientX和clientY?

Chr*_*blé 8 javascript events drag-and-drop firefox-3

Mozilla firefox 3.x在收听"ondrag"事件时似乎有一个bug.事件对象不报告被拖动对象的位置,clientX,clientY和其他屏幕偏移都设置为零.这是非常有问题的,因为我想根据被拖动的元素创建一个代理元素,当然使用clientX和clientY来调整它的位置.

我知道有很酷的东西,比如HTML5中的setDragImage,但我想为浏览器之间的本机DD提供通用抽象.

错误的代码:

document.addEventListener('drag', function(e) {
    console.log(e.clientX); // always Zero
}, false);
Run Code Online (Sandbox Code Playgroud)

注意:此问题不会发生在其他事件(dragstart,dragover)上,拖动某些事件时无法捕获mousemove事件.

请帮忙 !

Chr*_*blé 16

我找到了一个解决方案,我在文档级别的"dragover"事件中放置了一个监听器,现在我获得了可以通过全局共享对象公开的正确的X和Y属性.