Skip to content

Instantly share code, notes, and snippets.

@vsecoder-old-account
Last active December 8, 2020 18:50
Show Gist options
  • Save vsecoder-old-account/8123e2323443ab154acfe4bade3e7af0 to your computer and use it in GitHub Desktop.
Save vsecoder-old-account/8123e2323443ab154acfe4bade3e7af0 to your computer and use it in GitHub Desktop.
let dropArea = document.getElementById("drop-area");
['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {
dropArea.addEventListener(eventName, preventDefaults, false)
document.body.addEventListener(eventName, preventDefaults, false)
});
['dragenter', 'dragover'].forEach(eventName => {
dropArea.addEventListener(eventName, highlight, false)
});
['dragleave', 'drop'].forEach(eventName => {
dropArea.addEventListener(eventName, unhighlight, false)
});
dropArea.addEventListener('drop', handleDrop, false)
function preventDefaults (e) {
e.preventDefault()
e.stopPropagation()
}
function highlight(e) {
dropArea.classList.add('highlight')
}
function unhighlight(e) {
dropArea.classList.remove('active')
}
function handleDrop(e) {
var dt = e.dataTransfer
var files = dt
handleFiles(dt)
}
function handleFiles(input) {
let file = input.files[0];
if (file.name.slice(-5) == '.html') {
let reader = new FileReader();
reader.readAsText(file);
reader.onload = function() {
result = reader.result;
alert(result);
};
reader.onerror = function() {
er.innerHTML = reader.error;
};
} else {
er.innerHTML = 'Неизвестный файл, поддерживаются только .html!';
}
//alert(`File name: ${file.name}`);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment