Tôi đang tìm kiếm giải pháp trình duyệt chéo cho việc này. Trước tôi nói với bạn rằng tôi không muốn biết nếu là một tập tin chỉ, bởi vì tôi tìm thấy giải pháp cho điều đó. Tôi muốn biết nếu tập tin là một âm thanh, hình ảnh hoặc video về cơ bản. Trong Chrome khi bạn bắn sự kiện DragEnter bạn có thể nhận dữ liệu từ đây:Phát hiện loại tệp trên giải pháp trình duyệt qua trình thu thập thông tin
ev.originalEvent.dataTransfer.items[0].type;
Nhưng trong Firefox, Safari và IE "items" spec chưa được applyed nào: https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items
Trong những các trình duyệt bạn chỉ có thể thấy thuộc tính "tệp":
ev.originalEvent.dataTransfer.files[0];
Nhưng trên người kéo files[0]
trống. Làm thế nào tôi có thể giải quyết vấn đề này để biết loại tệp trong các trình duyệt khác này?
Ví dụ (Chỉ hoạt động trên 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>
Đã thử sử dụng 'loại đầu vào =" tệp "'? – guest271314