web-dev-qa-db-fra.com

__doPostBack n'est pas défini dans IE11

En utilisant un contrôle asp HyperLink prêt à l'emploi, IE 11 génère l'erreur SCRIPT5009: __doPostBack n'est pas défini avec un lien vers ici: http://msdn.Microsoft.com/en-us/library/ /xyf5fs0y(v=vs.94).aspx

Cela se voit dans la fenêtre de la console F12 devtools. 

Est-ce que quelqu'un a déjà rencontré ce problème et y a-t-il un correctif? Ceci est un environnement de production.

MODIFIER: L'application du correctif http://support.Microsoft.com/kb/2600088 n'a pas fonctionné pour moi et IE 10 sous Windows 8 fonctionne correctement. 

Scott Hanselman a publié un article plus récent contenant des informations mises à jour. http://www.hanselman.com/blog/IE10AndIE11AndWindows81AndDoPostBack.aspx Je vais essayer de résoudre ces problèmes et mettre à jour cette question, mais cela semble être isolé pour Windows 8.1 et IE11.

13
plntxt

L'installation de .NET Framework 4.5 sur votre serveur Web devrait résoudre le problème.

http://www.Microsoft.com/en-gb/download/details.aspx?id=30653

Si vous ne pouvez pas installer .NET Framework 4.5, un correctif Microsoft pour IE11 est disponible: http://support.Microsoft.com/kb/2836939 (Merci à @Afract pour votre commentaire)

3
Chris

Après avoir lutté avec le même problème pendant quelques jours, nous avons trouvé cette solution: 

http://connect.Microsoft.com/VisualStudio/feedback/details/806542/fix-internet-Explorer-11- pas -detected-correctly-by-net-4-0-framework-when-custom-browser- fichiers-sont-utilisés .

Ajoutez un nouveau fichier .browser au dossier App_Browsers. nous avons nommé le fichier 'IE11.browser', et si le dossier App_Browsers n'existe pas, créez-le.

Nous avons ensuite simplement copié le corps du lien ci-dessus dans le fichier nouvellement créé, redéployé, et maintenant il n'y a plus d'erreur _doPostBack.

Le corps du fichier ressemblait à ceci:

<browsers>
<browser id="IE11" parentID="Mozilla">
  <identification>
    <userAgent match="Trident\/7.0; rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" />
    <userAgent nonMatch="IEMobile" />
  </identification>
  <capture>
    <userAgent match="Trident/(?'layoutVersion'\d+)" />
  </capture>
  <capabilities>
    <capability name="browser"             value="IE" />
    <capability name="layoutEngine"         value="Trident" />
    <capability name="layoutEngineVersion" value="${layoutVersion}" />
    <capability name="extra"                value="${extra}" />
    <capability name="isColor"             value="true" />
    <capability name="letters"             value="${letters}" />
    <capability name="majorversion"         value="${major}" />
    <capability name="minorversion"         value="${minor}" />
    <capability name="screenBitDepth"     value="8" />
    <capability name="type"                 value="IE${major}" />
    <capability name="version"             value="${version}" />
  </capabilities>
</browser>

<!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11,0) like Gecko -->
<browser id="IE110" parentID="IE11">
  <identification>
    <capability name="majorversion" match="11" />
  </identification>

  <capabilities>
    <capability name="ecmascriptversion"    value="3.0" />
    <capability name="jscriptversion"     value="5.6" />
    <capability name="javascript"         value="true" />
    <capability name="javascriptversion"    value="1.5" />
    <capability name="msdomversion"         value="${majorversion}.${minorversion}" />
    <capability name="w3cdomversion"        value="1.0" />
    <capability name="ExchangeOmaSupported" value="true" />
    <capability name="activexcontrols"     value="true" />
    <capability name="backgroundsounds"     value="true" />
    <capability name="cookies"             value="true" />
    <capability name="frames"             value="true" />
    <capability name="javaapplets"         value="true" />
    <capability name="supportsCallback"     value="true" />
    <capability name="supportsFileUpload" value="true" />
    <capability name="supportsMultilineTextBoxDisplay" value="true" />
    <capability name="supportsMaintainScrollPositionOnPostback" value="true" />
    <capability name="supportsVCard"        value="true" />
    <capability name="supportsXmlHttp"     value="true" />
    <capability name="tables"             value="true" />
    <capability name="supportsAccessKeyAttribute"    value="true" />
    <capability name="tagwriter"            value="System.Web.UI.HtmlTextWriter" />
    <capability name="vbscript"             value="true" />
  </capabilities>
</browser>
</browsers>

Nous n'avons pas eu à mettre à niveau notre version .Net de 4 à 4.5, et tout fonctionne maintenant comme il se doit.

Espérons que cela aide quelqu'un qui a le même problème frustrant!

25
Robby Cowell

Mettez le script ci-dessous dans votre page maître va sûrement le réparer J'ai eu un problème similaire et il a été corrigé.

<script runat="server">

protected override void OnInit(EventArgs e)
{
Page.ClientTarget = "uplevel";
base.OnInit(e);

}
</script> 
7
vishal

L'installation de Framework 4.5 sur notre serveur nécessite de patauger dans un marais de formalités administratives et de remplir des formulaires. Voici ce que j'ai fait: 

Vers le site: http://blogs.telerik.com/aspnet-ajax/posts/13-12-19/how-to-get-your-asp.net-application-working-in-ie11

Recherchez le lien pour télécharger un fichier .browser personnalisé avec le correctif IE11.

Enregistrez le fichier telerik_ie11_browser_file_fix.Zip sur votre ordinateur et décompressez-le. Telerik_IE11_fix.browser

Copiez Telerik_IE11_fix.browser dans le chemin du serveur cible C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Browsers.

Exécutez les commandes suivantes sur votre serveur (visualisez-le sur un blog de correctif hanselman).

Exécutez C:\Windows\Microsoft.NET\Framework64\v4.0.30319> aspnet_regbrowsers –i

Exécuter iisreset sur votre serveur

1
user3201809

Aucun des correctifs n'a fonctionné pour moi, ni la mise à jour du fichier ie.browser . Je suis sous Windows Server 2008 R2.

La seule solution qui a fonctionné (à part la mise à niveau vers .net 4.5) est l’ajout de le script suggéré par @vishal dans ce fil de discussion.

0
Valer

L'ajout d'un fichier de configuration de navigateur à App_Browsers (voir ci-dessus pour XML) sous Windows 2008 avec IIS 7.5 fonctionne pour IE 11. Sur un site précédent, nous avons fait autre chose, mais c'est beaucoup plus simple.

0
Dave Ranck

J'ai découvert une page qui manquait la balise de formulaire avec le runat = 'serveur'. Si ce n'est pas sur votre page, la publication ne sera pas en mesure de renvoyer les contrôles et tirer correctement le code

0
Brandon

En gros, il manque 2 éléments cachés html "eventtarget" Et "eventargument", ainsi qu'une fonction manquante "__doPostBack".

Ceux-ci sont absents du DOM.

J'ai essayé tous les correctifs énumérés pour cela et aucun n'a fonctionné. Cependant, en utilisant une combinaison de jquery et javascript, il existe une solution discrète. Ajoutez ceci à votre javascript lorsque le document est prêt et vous êtes prêt pour la course:

if ($('#__EVENTTARGET').length <= 0 && $('#__EVENTARGUMENT').length <= 0) {
  $('#YOUR_ASPNET_FORMID').prepend('<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /><input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />');
}

if (typeof __doPostBack == 'undefined') {
  __doPostBack = function (eventTarget, eventArgument) { object
    var theForm = document.forms['YOUR_ASPNET_FORMID'];
    if (!theForm) {
      theForm = document.YOUR_ASPNET_FORMID;
    }
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
      theForm.__EVENTTARGET.value = eventTarget;
      theForm.__EVENTARGUMENT.value = eventArgument;
      theForm.submit();
    }
  };
}

Je comprends que certaines des dites installations 4.5 corrigent cela. Je recommanderais certainement que… .. Cependant, si vous êtes comme moi sur un site destiné au grand public avec un système cms cuit dans .net 4, cela pourrait être une solution plus simple, au lieu de créer de nouveaux bogues. de mettre à jour votre plate-forme.

0
user3283145