"SCRIPT5 Zugriff verweigert" Fehler auf IE9 beim Schießen .klicken Sie auf() von onchange

Wollen wir reduzieren die Anzahl der Schritte es braucht, damit ein Benutzer eine Datei hochladen, auf unserer website; wir sind also mithilfe von jQuery zu öffnen und postback-Dateien mit dem unten markup-Symbole (vereinfacht):

<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" />

Dieser Werke absolut in Ordnung, in Firefox und Chrome; die Datei öffnen-dialog, wenn der link angeklickt wird und die Entlassung der Postbacks, wenn eine Datei ausgewählt ist.

Jedoch im IE9 nach dem hochladen der Datei geladen hat, und ein Benutzer hat eine Datei ausgewählt; insteaed das OnChange funktioniert, erhalte ich einen "SCRIPT5 Zugriff verweigert" - Fehler. Ich habe versucht, die Einstellung einer beliebigen timeout-Einstellung Abständen zu überprüfen, ob eine Datei gegeben, ohne Erfolg.

Gibt es eine Reihe von anderen Fragen im Zusammenhang mit dieser; aber keiner scheint zu haben, eine anständige Antwort (Man sagte den Datei-dialog, um transparent zu sein und zu schweben, hinter einer Taste!)

Hat sonst noch jemand dieses Problem gelöst? Oder ist es absolut notwendig, dass ich ein button für IE Nutzer?

  • Warum bist du nicht einfach senden Sie die onclick auf Ihrer <a>, um die gleiche Funktion wie die onclick von $('#uplRegistrationImage')?
  • Die <a> " onclick öffnet sich der Datei-dialog; die <asp:FileUpload - > sollte auslösen eines Postbacks, wenn eine Datei ausgewählt ist.
  • Ich hatte die gleichen Probleme in Safari, so dass ich denke IE9 hat die gleiche Haltung, klicken Sie auf() eigentlich erfordert, dass ein Benutzer auf, die aus Sicht der Sicherheit, kann man wohl verstehen.
  • Fanden Sie keinen Weg drumherum oder hast du am Ende nur die eine Taste?
  • Ich landete ändern die Anwendung Struktur zu abstrahieren, die relevanten Teile heraus. Ich war nur eine Verknüpfung, ich war nicht gebunden an code hinter/post zurück applikationsstruktur. Es ist ein Weg, den Zugang zu code-behind-Methoden direkt von jquery, obwohl die möglicherweise eine Hilfe für Sie. Ich würde vorschlagen, mit jQuery auf link direkt in Ihren code. Man kann darüber Lesen, dass bei encosia.com/...
  • Ich fand gerade dieses: forums.asp.net/t/1573660.aspx/1, die aussieht wie Sie nur Notwendigkeit der Nutzung eines asp:Button anstelle der <a> - tag und Sie sollten ein workaround.
  • habe gerade versucht es auf IE9 ohne Erfolg; die postback ist immer noch blockiert werden, durch den gleichen Fehler. Jubel für den Artikel, obwohl
  • Sind Sie sicher, dass $('#btnSubmitImage').click(); ist dies die Ursache?
  • Könnte es sein, weil ich bin öffnen des Upload-dialogs von javascript mit $('#uplRegistrationImage').click(); ?

InformationsquelleAutor Luke Merrett | 2012-11-08
Schreibe einen Kommentar