Domanda

Sto cercando di simulare un caricamento di file asincrono utilizzando un iframe. Ecco il mio markup:

<form method="POST" enctype="multipart/form-data" name="change-avatar" action="/dyn/actions/upload?type=profile" target="target-upload">
<input type="file" name="change-avatar-input" style="position: absolute; z-index: 999; cursor: pointer; left: 10px; top: 57px; width: 147px; height: 23px; opacity: 0;"/>
<div style="position: absolute; z-index: 1000; cursor: pointer; left: 10px; top: 57px; width: 147px; height: 23px; opacity: 0;"/>
</form>
<button id="avatar-src" class="browse-button" type="button">Select File to Upload</button>

Ho preso un pulsante regolare e piazzato un input type = di file su di esso e impostare l'opacità a 0. Questo ingresso sottopone ad un iframe nascosto. Il problema è l'ingresso di file produce un cursore inaspettato (previsto essendo il puntatore) e non può essere designato in modo affidabile. Ho risolto questo problema inserendo un altro div 0 opacità sull'ingresso file 0 opacità e designato che per produrre il cursore corretto. poi ho impostato un gestore di eventi per rilevare un clic sul div 0 opacità che a sua volta fa scattare a livello di codice l'evento onclick dell'ingresso file utilizzando click().

Il problema è object.click() non sembra essere supportato in Firefox (funziona come previsto in IE).

È stato utile?

Soluzione

Controlla la Valums Ajax Carica: http://valums.com/ajax-upload/

Tale componente ha compiuto quello che sembra si sta cercando di fare ... si dovrebbe essere in grado di ottenere alcune buone idee lì per il codice (o semplicemente utilizzare il componente invece).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top