У меня на работе ситуация, когда я пытаюсь автоматизировать добавление нового контента на устаревшую платформу. Я работал с greasemonkey в firefox и пытаюсь создать интерфейс перетаскивания поверх существующей страницы, где пользователи могут загружать таблицы Excel, и он будет анализироваться на JSON. Я пытаюсь использовать FileReader для загрузки файла в то, что может быть проанализировано. Следуя Листу JS документации , я попытался добавить в свой код следующее для обработки файла:
// create drag drop interface to upload excel data
const dragDropEl = document.createElement('div');
dragDropEl.setAttribute('style', 'border: 1px dotted black; position: absolute; top: 350; left: 100; z-index: 10; height: 200px; width: 800px; text-align: center;');
dragDropEl.addEventListener('dragover', setCopyMethod, false);
dragDropEl.addEventListener('dragenter', setCopyMethod, false);
dragDropEl.addEventListener('drop', loadExcelSheet, false);
dragDropEl.appendChild(button);
document.body.appendChild(dragDropEl);
}
var setCopyMethod = function(event) {
// set method to copy for uploading file
event.stopPropagation();
event.preventDefault();
event.dataTransfer.dropEffect = 'copy';
}
var loadExcelSheet = function(event) {
// upload and read file with SheetJS
event.stopPropagation();
event.preventDefault();
var file = event.dataTransfer.files[0];
var reader = new FileReader();
reader.onload = function(event) { // This event never fires
let data = new Uint8Array(event.target.result);
var workbook = unsafeWindow.XLSX.read(data);
// try to do something with xlsx data
}
reader.readAsArrayBuffer(file);
}
Проблема в том, что метод onload никогда не срабатывает. Вместо этого, что я вижу, когда я регистрирую программу чтения файлов: Я хотел бы знать, что конкретно означает «Ограниченный» и какие у меня есть варианты, если таковые имеются. Заранее спасибо!