(拖N)文件拖放在Firefox
问题描述:
因为一个演示是值得72.814话:http://jsfiddle.net/rudiedirkx/J575b/3/show/(拖N)文件拖放在Firefox
这是最简单的演示。三个事件:拖动,拖动和放下。 over
和leave
按预期工作(该课程已添加并删除)。然而,下降不!
就像IE一样,它会在窗口中打开掉落的文件。在Chrome中,事件取消并拖放文件被删除(在这种情况下被忽略)。
在Firefox中甚至没有触发drop事件!
发生了什么事?我觉得这个工作......(它确实在Chrome它不能在Opera 11.64。)
编辑
固定,感谢阿德里亚诺:http://jsfiddle.net/rudiedirkx/J575b/5/show/
答
更改ondragover
处理程序为此:
drop.ondragover = function() {
this.classList.add('over');
return false;
};
注意return false
线,从Mozilla.org需要preventDefault()
或从函数返回一个错误的值以允许丢弃。
哇。那太简单了。我阅读https://developer.mozilla.org/en/DragDrop/Drag_and_Drop,但不是你建议的那个。愚蠢的谷歌;) – Rudie
谢谢,这让我疯狂的这个中午:)。直到我用ondragover取代ondragenter之后,ondrop才被解雇。 FF上的这些事件有什么区别?他们都在Chrome上运行良好。 –
@Tiendq拖放需要“确认”你正在拖动的对象(它将被删除)可以被处理。好的API不是你能在规范中看到的最好的东西(看看[这篇文章](http://www.quirksmode.org/blog/archives/2009/09/the_html5_drag.html),有点旧,但是它“解释”了这个问题)。 –