2012-09-07 30 views
8

Gdy dostarczamy klientowi użytkownika 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 do naszej aplikacji internetowej .NET 4, skrypt, który definiuje funkcję __doPostBack, nie występuje na stronie, a zatem nic który używa go działa.Formularze WWW ASP.NET nie renderują funkcji JavaScript zwrotnej w przeglądarce Chrome/iOS

Jeśli dostarczymy inny ciąg agenta użytkownika (np. Safari), działa poprawnie. Czy ktoś może to wyjaśnić?

+1

Może to być przyczyną problemu. http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMainainFF5ScrollbarPosition.aspx i tutaj jest Hotfix jest tutaj http://support.microsoft.com/kb/2600088 –

+0

Po wielu godzinach zorientowaliśmy się, że to był problem. Wydaje się, że ta poprawka jest skierowana na IE10. Opublikuję nasz plik .browser poniżej. – lukiffer

Odpowiedz

16

Problem polega na tym, że agent użytkownika Chrome nie jest rozpoznawany przez .net i zakłada, że ​​ma do czynienia z przeglądarką niskiego poziomu.

Aby rozwiązać dodaliśmy ~/App_Browsers/CriOS.browser o następującej treści:

<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

Działa jak czarujący! – Tillito

+0

Ładne rozwiązanie! Pracował idealnie. Moje LinkButtons nie reagowały w Chrome na iOS, ale teraz są. – RyanG

+0

nie wiem dlaczego, ale to nie zadziałało dla mnie :( – Ashish