プロが教える店舗&オフィスのセキュリティ対策術

おはよう,こんにちは,こんばんは
というカンマ区切りのCSVファイルが有り、
<script>
if(window.File) {
var result = document.getElementById('result');
var select = document.getElementById('select');
   select.addEventListener('change', function(e) {
var fileData = e.target.files[0];
      var reader = new FileReader();
reader.onerror = function() {
alert('ファイル読み取りに失敗しました')
}
reader.onload = function() {
var lineArr = reader.result.split('\n');
var itemArr = [];
for (var i = 0; i < lineArr.length; i++) {
itemArr[i] = lineArr[i].split(',');
}
   var textA[0] = itemArr[0][0];
var textA[0] = itemArr[0][1];
reader.readAsText(fileData, 'Shift_JIS');
}, false);
}
</script>
<body>
<input type="file" name="select" id="select" />
<div id="result"></div>
<script>
document.write(textA[0]);
</script>
としておはようと表示したいのですができません。FileAPIでCSV自体は読み込めているのですがどこがいけないのでしょうか。

A 回答 (2件)

こんにちは



>どこがいけないのでしょうか。
FileReaderを利用したことはありませんが、読込みは非同期的な処理となるはずです。
ですので、
>document.write(textA[0]);
が実行される時には、内容がまだ読み込めていない可能性が高いです。
https://developer.mozilla.org/ja/docs/Web/API/Fi …

タイミングとしては、onloadの関数内に記述しておけば、読み込み後に実行されることになります。
ただし、その際にはhtmlのパースが終わっていると想像されますので、「document.write」が使えない可能性もまた高いです。
DOM操作でコンテンツの書換えを行うような方法にしておいたほうが宜しそうに思います。
    • good
    • 0

”}” が1個足りない気がするのは気のせいだろうか…。



 reader.onload = function() {
に対する閉じ括弧が抜けていると思うんだ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!