Próbowałem za pomocą hack opisaną w różnych miejscach, które wykorzystuje:Znajdź jeżeli „anulować” został kliknięty na wejściu pliku
document.body.onfocus = checkOnCancel();
przykład:
var fileSelectEle = document.getElementById('fileinput');
fileSelectEle.onclick = charge;
function charge()
{
document.body.onfocus = checkOnCancel;
}
function checkOnCancel()
{
alert("FileName:" + fileSelectEle.value + "; Length: " + fileSelectEle.value.length);
if(fileSelectEle.value.length == 0) alert('You clicked cancel!')
else alert('You selected a file!');
document.body.onfocus = null;
}
jest coś złego tutaj? Ponieważ fileSelectedEle.value
zawsze zwraca poprzednią wartość wykonania, a NIE tę wybraną przez użytkownika. Czy jest to oczekiwane zachowanie pliku wejściowego? Jak rozwiązać ten problem, aby odczytać wybrany plik?
można odtworzyć błąd przez:
Krok 1: SelectFile - niektóre wybrać jakiś plik (i zauważyć wyjście)
Krok 2: SelectFile - Naciśnij przycisk Anuluj (i nota wyjście)
Masz na myśli 'document.body.onfocus = checkOnCancel;'? (Brak wywołania funkcji.) – Scimonster
@Scimonster - Nie, mam na myśli document.body.onfocus = checkOnCancel(); (z wywołaniem funkcji) – SamSharma