我正在使用JS和HTML 5实现一个文件处理器,它在Chome中正常运行,但在Firefox中没有。
这是jsfiddle:http://jsfiddle.net/vapocalypse/G9QbX/
在Firefox中,drop事件被转发到浏览器,浏览器打开文件,而不是由我的脚本处理。它表现得好像我在空标签上放了一些东西。
我做错了什么?我尝试使用getElementById从jQuery更改为本机DOM并覆盖ondrop方法,但结果相同......
谢谢, 载脂蛋白C
答案 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函数来实现的。这个例子非常脏,但它确实有效。如果我找到更好的解决方案,我会写。