Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   В скрипте не рабоает функция fileReader.onload (https://javascript.ru/forum/misc/84714-v-skripte-ne-raboaet-funkciya-filereader-onload.html)

АлександрJS 25.11.2022 09:13

В скрипте не рабоает функция fileReader.onload
 
В чем косяк, понять не могу. Код работает только до строки fileReader.onload = function (event) {
код:
<let selectedFile;
document.getElementById("file-input").addEventListener("change", function (event) {
   selectedFile = event.target.files[0];
});
document.getElementById("upload__image").addEventListener("click", function () {
   if (selectedFile) {
      const fileReader = new FileReader();
      fileReader.onload = function (event) {

         var data = event.target.result;
         var workbook = XLSX.read(data, {
            type: "binary"
         });
         workbook.SheetNames.forEach(sheet => {
            let rowObject = XLSX.utils.sheet_to_row_object_array(
               workbook.Sheets[sheet]
            );
            let jsObject = JSON.parse(JSON.stringify(rowObject));
            console.log(jsObject);

            return jsObject;
         });

      };

   };
});>

Aetae 25.11.2022 09:39

Для начала отформатируй код:
[js run]<код>[/js]

А проблема у тебя в том что ты повесил слушатель на событие загрузки(onload), но саму загрузку то не запустил. Тебе после этого надо дописать
FileReader.readAsЧтоТо(selectedFile);

рони 25.11.2022 09:39

АлександрJS,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

АлександрJS 25.11.2022 10:02

Точно! Во тупой, даже не заметил - полдня пропарил. Добавил соотвествующую команду и все заработало. fileReader.readAsBinaryString(selectedFile);
Спасибо, святой человек!)


Часовой пояс GMT +3, время: 20:06.