“SCRIPT5 l'Accès est refusé” erreur sur IE9 lors de la cuisson .cliquez sur la (les) de onchange

Nous voulons réduire le nombre d'étapes qu'il faut pour un utilisateur de télécharger un fichier sur notre site web; nous sommes donc à l'aide de jQuery pour l'ouvrir et la publication de fichiers à l'aide de la ci-dessous de balisage (simplifié):

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

Cela fonctionne très bien sous Firefox et Chrome, ce qui ouvre la boîte de dialogue de fichier lorsque le lien est cliqué, et la cuisson de la publication lorsqu'un fichier est sélectionné.

Cependant dans IE9 après l'upload de fichier est chargé et qu'un utilisateur a sélectionné un fichier; insteaed de la OnChange de travail, je reçois un "SCRIPT5 Accès refusé" s'affiche. J'ai essayé de réglage de l'arbitraire d'un délai d'attente, réglage des intervalles de vérifier si un fichier est donné en vain.

Il y a un certain nombre d'autres questions relatives à la présente; cependant, aucune ne semble avoir une bonne réponse (l'Un dit jeu de la boîte de dialogue de fichier pour être transparent et placez un bouton!)

Quelqu'un d'autre a résolu ce problème? Ou est-il absolument nécessaire que je fournir un bouton pour les utilisateurs de IE?

  • Pourquoi n'êtes-vous pas d'envoyer le onclick sur ton <a> pour la même fonction que le onclick de $('#uplRegistrationImage')?
  • Le <a> onclick ouvre la boîte de dialogue de fichier; le <asp:FileUpload> devrait déclencher une publication chaque fois qu'un fichier est sélectionné.
  • J'ai eu les mêmes problèmes dans Safari, donc je suppose que IE9 a pris la même position que sur() nécessite un clic de l'utilisateur, ce qui, d'un point de vue sécurité, vous pouvez probablement comprendre.
  • Avez-vous trouvé le moyen de contourner cela ou avez-vous atterri juste à fournir un bouton?
  • J'ai fini par changer la structure de l'application à l'abstrait les parties pertinentes de sortir. J'étais seulement en l'utilisant comme un raccourci, je n'était pas lié à du code derrière/post arrière de la structure des applications. Il existe un moyen de code d'accès derrière méthodes directement à partir de jquery mais qui pourrait être de l'aide pour vous. Je suggère l'utilisation de jQuery pour le lien directement dans votre code derrière. Vous pouvez lire à ce sujet dans le encosia.com/...
  • Je viens de trouver ceci: forums.asp.net/t/1573660.aspx/1 qui vous ressemble juste besoin d'utiliser un asp:Bouton à la place de la <a> tag et vous devriez avoir une solution de contournement.
  • juste essayé sur IE9 en vain; la publication est toujours bloquée par la même erreur. Bravo pour l'article, bien que
  • Êtes-vous sûr que $('#btnSubmitImage').click(); en est la cause?
  • Serait-ce parce que je suis de l'ouverture de l'uploader boîte de dialogue à partir de javascript à l'aide de $('#uplRegistrationImage').click(); ?

InformationsquelleAutor Luke Merrett | 2012-11-08