gpt4 book ai didi

html - Firefox (v10) 中的文件拖放

转载 作者:太空狗 更新时间:2023-10-29 15:57:33 26 4
gpt4 key购买 nike

我正在尝试在 Firefox 中进行文件拖放操作,并且正在逐步开始。现在,我只是想将一些文件拖到拖放区并获取拖放文件的列表。此时,我还不想对这些文件做任何事情。

当我将文件(在本例中为图像,但无论文件类型如何,都会发生同样的事情)从查找器拖到拖放区时,我可以看到 dragenter 和 dragexit 事件正在触发。当我将文件放入 dropzone 时,drop 事件没有触发。相反,浏览器会自行打开图像(例如,地址显示为 file://path/to/my/image.png)。

我的 javascript 看起来像这样:

  dropbox = document.getElementById("standard_file_dropzone");

dropbox.addEventListener("dragenter", function(){console.log('standard enter');}, false);
dropbox.addEventListener("dragexit", function(){console.log('standard exit');}, false);
dropbox.addEventListener("dragover", $.noop, false);
dropbox.addEventListener("drop", function ( event ) {
console.log('standard dropped');
event.stopPropagation();
event.preventDefault();

if(( typeof event.dataTransfer.files !== 'undefined' ) &&
( event.dataTransfer.files.length > 0 )) {
console.dir( event.dataTransfer.files );

}
return false;
}, false);

我的 HTML 看起来像这样:

    <div id="standard_file_dropzone" style="height:150px; width:150px; border:solid;">
Standard Drop Files Here
</div>

所以我想知道我在这里做错了什么?上面的代码似乎没有任何错误(至少对我来说是显而易见的)。 dragenter/exit 事件正在触发,为什么 drop 事件没有触发?为什么浏览器试图自己打开文件?

需要注意的一点是,当我在 Chrome 中打开我的页面时,它按预期工作,因此这是 Firefox 特有的问题。

谢谢,克里斯托夫

最佳答案

问题是使用 $.noop 作为 dragover 处理程序。用一个实际上停止传播和冒泡的函数替换它,它开始按预期工作。

有时候我真是个白痴。 :p

关于html - Firefox (v10) 中的文件拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10983347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com