我正在爲此尋找跨瀏覽器解決方案。我事先告訴你,我不想知道是否只是一個文件,因爲我找到了解決方案。我想知道該文件是否基本上是音頻,圖像或視頻。在Chrome中,當你火DragEnter事件,你可以從這裏得到的數據:在dragenter跨瀏覽器解決方案上檢測文件類型
ev.originalEvent.dataTransfer.items[0].type;
但在Firefox,Safari和IE瀏覽器的「項目」規範尚未applyed: https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items
在這些瀏覽器只能看到「文件」屬性:
ev.originalEvent.dataTransfer.files[0];
但上的dragenter files[0]
是空的。我該如何解決這個問題才能知道這些其他瀏覽器中的文件類型?
實例(僅適用於Chrome):
$(document).on('dragenter', '.drop-zone', function(ev) {
var e = ev.originalEvent;
e.dataTransfer.dropEffect = 'copy';
var file = e.dataTransfer.items[0];
var type = file.type.slice(0, file.type.indexOf('/'));
$(ev.target).html(type);
});
$(document).on('dragleave', '.drop-zone', function(ev) {
$(ev.target).html('Drag your file over here to know the type, no need to drop it');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="drop-zone">Drag your file over here to know the type, no need to drop it</div>
嘗試使用'input type =「file」'? – guest271314