Der untenstehende Code funktioniert überall außer auf safri mobile. Scheinbar wird die onchange nie ausgelöst.Javascript Dateieingabe onchange funktioniert nicht [nur Safari]
// create a hidden file input element
var input = document.createElement("input");
input.type = "file";
// when the input content changes, do something
input.onchange =
function(event)
{
// upload files
}
// Trigger file browser
input.click();
Ich habe ähnliche Beispiele gefunden aber sie alle Szenarien beziehen, wo es auch eine Form von einer anderen sichtbaren Darstellung der Eingabedatei ist und sie alles Form-Clearing Abhilfen beinhalten. Das würde hier nicht funktionieren.
Dieser Code wird beim Klicken auf ein Bild aufgerufen, um ein neues als Ersatz zu laden.
Irgendwelche Hinweise? Was mache ich falsch?
'onchange' wird nicht ausgelöst, bis der Client tatsächlich eine Datei oder Dateien auswählt. '.click()' funktioniert möglicherweise nicht in manchen Browsern auf ''. – PHPglue
.click funktioniert überall für das, was ich testen konnte, und die Dateiauswahl wird auf Safari iOS korrekt geöffnet. Was nicht ausgelöst wird, ist onchange * nachdem * die Datei ausgewählt und der Auswahldialog geschlossen wurde. – resle