前提・実現したいこと
JavaScriptのFileReaderを利用してテキスト等のファイルを読み込み、関数内でその値を使おうとしています。しかし、以下のコードではテキストファイルから取得した内容を関数で使うことができません。JavaScriptコード内のresultから値を取り出すか、別の方法でテキストファイルの内容を関数内で使用したいです。
該当のソースコード
html
1<!--test.html--> 2<form id="testForm"> 3 <input multiple="" id="inputFile" type="file"/> 4</form> 5<button id="button1">click</button> 6<script src="test.js"></script>
javaScript
1//test.js// 2function main() { 3 let inputFiles = document.getElementById('inputFile'); 4 let result = []; 5 for (let i = 0; i < inputFiles.files.length; i++) { 6 let reader = new FileReader(); 7 reader.onload = function () { 8 result.push(reader.result) 9 }; 10 reader.readAsText(inputFiles.files[i]); 11 12 } 13 console.log('result',result); 14 console.log('result[0]',result[0]); 15 //ここでテキストの内容をString型として使いたい 16} 17 18let button1 = document.getElementById('button1'); 19button1.addEventListener('click', main);
試したこと
ChromeでHTMLを開いて適当なテキストファイルを読み込み、コンソールを確認するとresultにファイルの内容は読み込まれているのですが、result[0]はundefinedとなりました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/26 15:26 編集
2020/07/26 16:00
2020/07/26 17:14