我正在向我的项目添加拖放功能,我遇到了firefox的问题。
我正在测试这种情况的代码是:
document.getElementById("folder_files").addEventListener("drop", function(event) {
event.preventDefault();
event.stopPropagation();
alert(event.dataTransfer.files[0].fileName);
}, false);
要测试,我正在将文件拖到我的folder_files div中。在chrome(版本16)中,警报弹出,文件名很好。使用firefox(版本8),我得到了未定义。关于这里发生了什么的任何想法?
答案 0 :(得分:1)
发现问题。在转储对象中的所有内容之后,我可以看到chrome获得的数据与firefox不同。
Chrome获得了什么:
'0' ...
'size' => "30379"
'lastModifiedDate' ...
'fileSize' => "30379"
'name' => "bg.png"
'type' => "image/png"
'webkitRelativePath' => ""
'fileName' => "bg.png"
'webkitSlice' => "function webkitSlice() { [native code] }"
'length' => "1"
'item' => "function item() { [native code] }"
firefox得到了什么:
0' ...
'size' => "30379"
'type' => "image/png"
'mozSlice' => "function mozSlice() {
[native code]
}"
'name' => "bg.png"
'mozFullPath' => ""
'length' => "1"
'item' => "function item() {
[native code]
}"
我没有在代码中使用fileName / fileSize / fileType,而是开始使用名称/大小/类型。
答案 1 :(得分:0)
您可以添加如下所示的normalize函数来支持:
// File Normalization for Firefox support:
_normalizeFunction: function (file) {
if (file.name === undefined && file.size === undefined) {
file.name = file.fileName;
file.size = file.fileSize;
}
},