Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript firefox中的HTML5拖放操作未按预期工作_Javascript_Html_File_Firefox_Drag And Drop - Fatal编程技术网

Javascript firefox中的HTML5拖放操作未按预期工作

Javascript firefox中的HTML5拖放操作未按预期工作,javascript,html,file,firefox,drag-and-drop,Javascript,Html,File,Firefox,Drag And Drop,我正在用JS和HTML5实现一个文件处理器,它在Chome中正常工作,但在Firefox中没有 以下是JSFIDLE: 在Firefox中,drop事件被转发到浏览器,浏览器打开文件,而不是由我的脚本处理。它的行为就像我在一个空标签上掉了什么东西 我做错了什么?我曾尝试使用getElementById并重写ondrop方法从jQuery更改为本机DOM,但结果相同 谢谢, Apoc好吧,请参见。这是基于你父亲的例子。不知道为什么,但dragover事件不是通过FF14中的$.bind或addEv

我正在用JS和HTML5实现一个文件处理器,它在Chome中正常工作,但在Firefox中没有

以下是JSFIDLE:

在Firefox中,drop事件被转发到浏览器,浏览器打开文件,而不是由我的脚本处理。它的行为就像我在一个空标签上掉了什么东西

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

谢谢,
Apoc

好吧,请参见。这是基于你父亲的例子。不知道为什么,但dragover事件不是通过FF14中的$.bind或addEventListener函数绑定的。这个例子很肮脏,但它是有效的。如果我找到更好的解决方案,我会写信。

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

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

我还从代码中删除了
$(document).ready
,并将JSFIDLE设置为运行所有JS onDomReady,但我认为这并没有多大区别

正如@robertc所指出的,没有取消的是
dragover
事件,也是您所做的。谢谢顺便问一下,你怎么知道是这样的?