2017-01-13 3 views
0

私は、新しいFileReaderでCSVを読み込んで解析するフロントエンド集約的なプロジェクトに取り組んでいます。ここで私は開発ツールのおかげで推測したものから、問題のあるコードブロック、次のとおりです。JS FileReader onloadendがリダイレクトを引き起こしているようです

function parseCSVs() { 
    let fileUpload = document.getElementById('file-input') 

    if(fileUpload.files.length) { 
    let fileReader = new FileReader(), 
     varLabels = varAssigner.querySelectorAll('input'); 

    function _addUntilFull(i) { 
     fileReader.readAsText(fileUpload.files[i]) 
     fileReader.onloadend = function() { 
     addVar(varLabels[i].value, csvToMatrix(fileReader.result)) 

     if(varList.length == fileUpload.files.length) { 
      return; 
     } else { 
      _addUntilFull(i + 1) 
     } 
     } 
    } 
    _addUntilFull(0) 
    } 

Preserved console messages

ログを保存した後は、(上の図を参照)、私は、コンソールが(すべて正しいメッセージをログに記録されたことを発見しました私の機能はすべて正常に機能していると思う)、ドキュメントはファイルの提出と解析の完了時にクリア/リロードされ、ログには "file:/// etc/etcにナビゲートする"と表示されるので、 FileReaderオブジェクトまたはinput [type = "file"]オブジェクトのいずれかの部分で予期しない動作が発生することがあります。 MDNのFileReaderやその他のオンラインフォーラムのドキュメントで、なぜこれが起こっているのかを説明するものは何も見つかりません。助けてください!これは頭​​痛のようなものでした-_- ありがとう!

答えて

0

私は実際問題が何であるかを理解しましたが、上記のコードブロックとは何の関係もありませんでした... parseCSVs関数をトリガしたボタンはフォーム内にありました。フォームの "メソッド"属性で、ボタンには "タイプ"がなく、ボタンはonclick関数の起動後にリダイレクトをトリガーしました。また、私はベアボーンのHTMLファイルに属性のないフォームとボタンのテストを実行し、上記と同じ動作を発見しました。要素を切り替えてリダイレクトを防止し、問題を修正しました:)

関連する問題