FileReader
onload
nicht zum zweiten Mal gefeuert, wenn die gleiche Datei immer noch mit IE11 ausgewählt wurde, aber der Inhalt der Datei geändert wurde, wird alles ausgelöst die Zeit für FireFox, Chrome.FileReader onload wird nicht zum zweiten Versuch in IE 11 gefeuert, nachdem der Inhalt der hochgeladenen Datei geändert wurde
Betriebsdetails
- On First Click, es ist alles in Ordnung für alle Browser (IE, aber irgendwann noch ein paar Worte aus der Datei fehlt).
- Danach habe ich den Inhalt der Datei geändert.
- Und dann klicke ich zweiten Versuch zu
btnDownload
, Firefox und Chrome immer noch den aktualisierten Inhalt zu lesen. ABER IE ARBEITET NICHT!
.html
<input type="file" id="fileSelect" style="" accept=".csv">
<a type="button" class="btn" id="btnDownload" onclick="csvDownload()"
download> CSV DOWNLOAD </a>
myjavascript.js
var fileInput = document.getElementById("fileSelect"); //<input type="file" id="fileSelect">
var result = "";
readFile = function() {
changeAPInfoName();
if (!isFileSupported()) {
console.log('The browser does not support the API.');
} else {
if (fileInput.files.length > 0) {
var reader = new FileReader();
reader.onload = function() {
result = reader.result;
alert("WANT TO GET HERE ,ALTHOUGH FILE CONTENTS ARE CHANGED.(IN IE 11)");
document.getElementById('MY_HIDDEN_FIELD').setAttribute('value',result);
}
reader.readAsText(fileInput.files[0]);
reader.onerror = function() {
console.log('The file cannot be read.'+fileInput.files[0].fileName);
};
}
// EVENT FOR DOWNLOAD BUTTON!!!!
function csvDownload(){
readFile();
// using ajax to sent info from files and get download file.
}
Bitte helfen Sie uns mit folgendem Problem.
- Wie kann ich zu der Zeile in reader.onload-Methode, obwohl Dateiinhalte geändert werden.
alert("WANT TO GET HERE ,ALTHOUGH FILE CONTENTS ARE CHANGED.(IN IE 11)");
.
versuchen reader.addEventListener ("Laden", Funktion() {}); – Jois
heh: '; btnDownload.click();' Wenn das im IE immer noch nicht funktioniert, dann wird IE es nicht einfach machen. Bei den anderen Browsern müssen Sie die Eingabe nicht wirklich neu auffüllen. Wenn Sie die Routine FileReader() erneut aufrufen, wird der Inhalt der neuen Datei extrahiert. In diesen Browsern wird also "; btnDownload.click();" (ohne Das Durcheinander mit dem Klicken der Eingabe) funktioniert magisch wie erwartet, und wenn Sie es abfragen, erstellen Sie eine "watchfile" ... – dandavis
Danke für Ihre Zeiten. :) @Jois: Wo sollte ich diesen Code hinzufügen. 'function() {}' bedeutet ??? – hmmh