Ho problemi con "tag input" nei browser non IEcome ottenere i file da <input type = 'file' ... /> (indiretta) con javascript
<input type="file" ...
Sto cercando di scrivere il mio uploader, usando solo javascript e asp.net.
Non ho problemi a caricare i file.
Il mio problema si è verificato quando ho voluto ottenere il mio file nei browser non IE con
<input type="file" ...
Non voglio usare direttamente dal input
perché il suo aspetto non cambia correttamente
Ho scritto questo codice per ottenere file dal disco rigido:
function $tag(_str_tag) {
return document.getElementsByTagName(_str_tag);
}
function $create(_str_tag) {
return document.createElement(_str_tag);
}
function $open_file() {
_el_upload = $create("input");
_el_body = $tag("body")[0];
_el_upload.setAttribute("type", "file");
_el_upload.style.visibility = "hidden";
_el_upload.setAttribute("multiple", "multiple");
_el_upload.setAttribute("position", "absolute");
_el_body.appendChild(_el_upload);
_el_upload.click();
_el_body.removeChild(_el_upload);
return _el_upload.files;
}
In IE funziona piuttosto bene e restituisce i miei file al momento; In Chrome e Firefox, dopo aver caricato "finestra di dialogo per l'immissione dei file", non è possibile restituire alcun file. E Opera e Safari sono completamente fuori.
Posso risolvere il problema con questo trucco, ma fondamentalmente non è buono.
_el_upload.click();
alert();
Penso che "callback" o "wait function" possano risolvere il problema, ma non riesco a gestirlo.
Cosa intendi per "il suo aspetto non cambia correttamente" Che cosa stai cercando di fare? –
È necessario utilizzare l'evento 'onchange' dell'elemento' '. 'return _el_upload.files' succede * prima * si seleziona un file. –
hi @RocketHazmat thx per la risposta: sto cercando di creare la mia interfaccia utente nel mio CMS e ho problemi con design; Non voglio vedere una casella di testo vicino a un pulsante chiamato "file upload" –