2012-09-07 17 views
8

Wenn wir den Benutzer Agent Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.80 Mobile/9A405 Safari/7534.48.3 unserer .NET 4 Webforms App liefern, ist das Skript, das die Funktion __doPostBack definiert, nicht auf der Seite vorhanden und somit nichts das nutzt es funktioniert.ASP.NET-Webformulare rendern keine Postback-JavaScript-Funktion für Chrome/iOS

Wenn wir eine andere User-Agent-Zeichenfolge (z. B. Safari) angeben, funktioniert es einwandfrei. Kann jemand das erklären?

+1

Dies vielleicht die Ursache des Problems. http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx und hier ist der Hotfix ist hier http://support.microsoft.com/kb/2600088 –

+0

Ja, nach Stunden und Stunden haben wir herausgefunden, dass das war Problem. Der Hotfix scheint jedoch auf IE10 ausgerichtet zu sein. Ich werde unsere .browser-Datei unten veröffentlichen. – lukiffer

Antwort

16

Das Problem ist also, dass der Chrome-Benutzeragent von .net nicht erkannt wird und daher davon ausgeht, dass es sich um einen Low-Level-Browser handelt.

zu lösen, haben wir ~/App_Browsers/CriOS.browser mit folgendem Inhalt:

<browsers> 
    <browser id="CriOS" parentID="Safari"> 
     <identification> 
      <userAgent match="CriOS" /> 
     </identification> 

     <capabilities> 
      <capability name="browser" value="CriOS" /> 
      <capability name="ecmascriptversion" value="3.0" /> 
      <capability name="javascript" value="true" /> 
      <capability name="javascriptversion" value="1.7" /> 
     </capabilities> 
    </browser> 
</browsers> 
+0

Funktioniert wie ein Charme! – Tillito

+0

Schöne Lösung! Perfekt gearbeitet. Meine LinkButtons reagierten nicht in Chrome auf iOS, aber jetzt sind sie. – RyanG

+0

nicht sicher warum, aber das hat nicht für mich funktioniert :( – Ashish

Verwandte Themen