Wir möchten die Anzahl der Schritte reduzieren, die ein Benutzer benötigt, um eine Datei auf unsere Website hochzuladen; so dass wir mit jQuery öffnen und Postback-Dateien, die unter Verwendung von Markup (vereinfacht):Fehler "SCRIPT5 Zugriff verweigert" auf IE9 beim Auslösen von .click() von 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" />
Dies funktioniert absolut in Ordnung in Firefox und Chrome; Öffnen des Dateidialogs, wenn auf die Verknüpfung geklickt wird, und Starten des Postbacks, wenn eine Datei ausgewählt wird.
Allerdings in IE9, nachdem der Datei-Upload geladen wurde und ein Benutzer eine Datei ausgewählt hat; Als OnChange funktioniert, bekomme ich den Fehler "SCRIPT5 Access is denied". Ich habe versucht, eine willkürliche Zeitüberschreitung einzustellen, indem ich Intervalle einstelle, um zu überprüfen, ob eine Datei vergebens vergeben wird.
Es gibt eine Reihe anderer Fragen dazu; aber keine scheint eine anständige Antwort zu haben (Eins sagte, dass der Dateidialog transparent sein sollte und hinter einer Taste schweben!)
Hat jemand anderes das gelöst? Oder ist es absolut notwendig, dass ich eine Schaltfläche für IE-Benutzer zur Verfügung stelle?
Warum Sie den Onclick Senden verwenden werden, nicht nur auf dem auf die gleiche Funktion wie die Onclick von $ (‚# uplRegistrationImage‘)? –
Der Onclick öffnet den Dateidialog; Das sollte ein Postback auslösen, wenn eine Datei ausgewählt wird. –
Ich hatte die gleichen Probleme in Safari, also denke ich, IE9 hat die gleiche Haltung eingenommen, dass click() tatsächlich einen Benutzerklick erfordert, was aus Sicherheitsgründen, Sie wahrscheinlich verstehen können. – samazi