Firefox 5中的HTML 5拖放不按预期工作

时间:2012-08-24 20:57:16

标签: javascript html5 file firefox drag-and-drop

我正在使用JS和HTML 5实现一个文件处理器,它在Chome中正常运行,但在Firefox中没有。

这是jsfiddle:http://jsfiddle.net/vapocalypse/G9QbX/

在Firefox中,drop事件被转发到浏览器,浏览器打开文件,而不是由我的脚本处理。它表现得好像我在空标签上放了一些东西。

我做错了什么?我尝试使用getElementById从jQuery更改为本机DOM并覆盖ondrop方法,但结果相同......

谢谢, 载脂蛋白C

2 个答案:

答案 0 :(得分:3)

据我所知,您的基本问题是您没有取消正在尝试捕获dragover事件的元素上的drop事件。在这种情况下,drop事件将被忽略。这是我添加的代码:

$('#topDiv').bind("dragenter dragover", function(e) {
    e.preventDefault();
    return false;
});

我还删除了代码中的$(document).ready形式,并设置了jsFiddle来代替运行所有JS onDomReady,但我认为这并没有太大的区别。 Here's the example

答案 1 :(得分:1)

好的,请参阅http://jsfiddle.net/G9QbX/75/。这是基于你的例子。不知道为什么,但dragover事件不是通过FF14中的$ .bind或addEventListener函数来实现的。这个例子非常脏,但它确实有效。如果我找到更好的解决方案,我会写。