Vogliamo ridurre il numero di passaggi necessari affinché un utente carichi un file sul nostro sito Web; quindi stiamo utilizzando jQuery per aprire e file di postback utilizzando il markup di seguito (semplificato):Errore "SCRIPT5 Accesso negato" su IE9 durante l'attivazione di .click() da onchange
<a onclick="$('#uplRegistrationImage').click();">
Change profile picture
</a>
<!-- Hidden to keep the UI clean -->
<asp:FileUpload ID="uplRegistrationImage"
runat="server"
ClientIDMode="static"
Style="display:none"
onchange="$('#btnSubmitImage').click();" />
<asp:Button runat="server"
ID="btnSubmitImage"
ClientIDMode="static"
Style="display:none"
OnClick="btnSubmitImage_OnClick"
UseSubmitBehavior="False" />
Questo funziona assolutamente bene in Firefox e Chrome; aprire la finestra di dialogo del file quando si fa clic sul collegamento e attivare il postback quando viene selezionato un file.
Tuttavia in IE9 dopo che il caricamento del file è stato caricato e un utente ha selezionato un file; in seguito all'attivazione di OnChange, viene visualizzato un errore "SCRIPT5 Access is negato". Ho provato a impostare un timeout arbitrario, impostando gli intervalli per verificare se un file è stato dato inutilmente.
Ci sono una serie di altre domande relative a questo; tuttavia nessuno sembra avere una risposta decente (uno ha detto che la finestra di dialogo dei file è trasparente e passa con il mouse su un pulsante!)
Qualcun altro ha risolto questo? O è assolutamente necessario fornire un pulsante per gli utenti di IE?
Perché non stai solo inviando l'onclick sul per la stessa funzione del onclick di $ ('# uplRegistrationImage')? –
onclick apre la finestra di dialogo del file; il dovrebbe attivare un postback ogni volta che viene selezionato un file. –
Ho avuto gli stessi problemi in Safari, quindi suppongo che IE9 abbia preso la stessa posizione che click() richiede effettivamente un clic dell'utente, che da un punto di vista della sicurezza, probabilmente puoi capire. – samazi