3

我在 JS 和 HTML 5 中实现了一个文件处理器,它在 Chome 中按预期工作,但在 Firefox 中没有。

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

在 Firefox 中,drop 事件被转发到浏览器,浏览器打开文件,而不是由我的脚本处理。它的行为就好像我在一个空选项卡上放了一些东西。

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

谢谢,阿波克

4

2 回答 2

3

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

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

我还删除了$(document).ready您的代码表单,只是将 jsFiddle 设置为运行所有 JS onDomReady,但我认为这没有太大区别。 这是示例

于 2012-08-24T22:08:43.240 回答
1

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

于 2012-08-24T22:02:01.693 回答