javascript internet-explorer windows-8.1

javascript - DoPostback falla en IE 11+ Windows 8.1



internet-explorer windows-8.1 (9)

Estoy obteniendo una página en blanco en IE 11 en Windows 8.1 Preview.Después de inspeccionar la página asumí que el siguiente código podría ser el culpable, ya que después de esta línea no hay más líneas en la ventana del depurador, así que el código se está rompiendo después de esta línea.

IE 11

<!-- <form name="aspnetForm" method="post" action="Register" id="aspnetForm"> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTkwNDQ3O

Probé la misma página en Chrome Versión 29.0.1547.57 m en Windows 8.1 Preview. Está funcionando bien allí y obtengo el siguiente código.

CROMO

<script type="text/javascript"> //<![CDATA[ var theForm = document.forms[''aspnetForm'']; if (!theForm) { theForm = document.aspnetForm; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> </script>

->


¡Encontré que la solución más fácil era instalar .Net 4.5.1 y ni siquiera tuve que cambiar la versión que está usando nuestra aplicación!


Es probable que se esté tropezando con un problema con la detección del navegador en IIS. Scott Hanselman escribió sobre esto en el pasado con IE10, y el problema que tiene parece reflejar su descripción.

Una revisión disponible en ese momento, http://support.microsoft.com/kb/2600088 , declaró:

De forma predeterminada, ASP.NET utiliza tecnología de rastreo para que la cadena de agente de usuario detecte los navegadores. Los archivos de definición del navegador cubren un cierto rango de versiones del navegador. Sin embargo, a medida que aumentan los números de versión, es posible que ASP.NET no reconozca las nuevas versiones de un navegador utilizando la cadena de agente de usuario. En este caso, ASP.NET podría manejar estas versiones como un navegador desconocido. Por ejemplo, ASP.NET no puede reconocer Windows Internet Explorer 10 que tiene la siguiente cadena de agente de usuario:

Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)

Sin embargo, esta revisión parece no aplicarse a IE11 debido a un nuevo formato de agente de usuario. Hay un paquete de NuGet llamado App_Browsers que puede contener una solución, pero hasta entonces tendrá que escribir su propia regla.

El esquema de archivo de definición de navegador de MSDN proporciona detalles sobre cómo escribir un archivo de detección de navegador; Encontrará los archivos existentes en C: / Windows / Microsoft.NET / Framework / v4.0.30319 / Config / Browsers.

De acuerdo con los Cambios de compatibilidad de MSDN en la Vista previa de IE11 , el agente de usuario para la Vista previa de IE11 es:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

que no es reconocido por la expresión regular de IE estándar (de ahí el problema que está viendo), sin embargo, lo siguiente debería funcionar en su lugar:

Trident//7.0; rv:(?''version''(?''major''/d+)(/.(?''minor''/d+)?)(?''letters''/w*))(?''extra''[^)]*)

No lo he probado en un entorno real, pero esto analiza correctamente la versión principal y secundaria, que son claves para resolver el problema original. Intente agregar esto como otra coincidencia en el archivo ie.browser .

Tenga en cuenta que recientemente se formuló una pregunta similar en MSDN ; tal vez valga la pena seguirla y contribuir a ella.

He experimentado un problema similar y me gustaría compartir mis conclusiones y cómo lo he resuelto. Directo al problema: .NET Framework 4.0 no reconoce correctamente el navegador Internet Explorer 11. Esto se puede verificar en un sitio web simple y en una página que muestre la información del navegador de la solicitud llamando al:

Solicitud.Browser.Browser

Solicitud.Browser.Version

El resultado sin ningún parche es: Mozilla 0.0 Una vez aplicado el parche mencionado en el siguiente artículo, los detalles del navegador se convierten en: IE 11.0 Sin embargo, este enfoque funciona correctamente en un sitio web que no tiene archivos .browser personalizados. Descubrí que si tiene un solo archivo vacío en la carpeta app_browsers del sistema en su sitio, entonces el navegador y la versión vuelven a ser incorrectos, es decir, Mozilla 0.0 (aunque el parche para .NET 4.0 ya está instalado). Examinando más el problema, logré solucionar este comportamiento no deseado al incluir el código provisto en la publicación anterior de Sistemas-infoe en un archivo .browser y colocarlo en la carpeta app_browsers del sitio web. Me gustaría aclarar que el problema solo ocurre con .NET 4.0, mientras que con .NET 4.5, el navegador y su versión se detectan correctamente.

Espero que esto ayude.

Saludos cordiales, Mihail


Hemos creado un nuevo archivo "ie11.browser" en C: / Windows / Microsoft.NET / Framework / v4.0.30319 / Config / Browsers y ahora ASP.NET funciona correctamente. Después de crear el archivo, ejecutamos "aspnet_regbrowsers -i" y reiniciamos IIS. Simplemente copiamos las capacidades de IE6-9. No sabemos si esto es correcto, pero ASP.NET ahora funciona con Explorer 11 ejecutándose en Windows 8.1. Nuestro archivo ie11.browser se ve así:

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


La revisión de Microsoft ''2600088'' definitivamente NO funciona, por lo que tendrá que tomar la ruta del archivo .browser.

Con la última versión de IE11, deberá realizar una pequeña revisión del archivo RegEx ie.browser publicado por arriba. Asegúrate de permitir más caracteres en la cadena UA entre el punto y coma y el espacio. Si tus habilidades RegEx son terribles (al igual que las mías), eso es un período y luego una estrella.

ANTIGUO:

<userAgent match="Trident//7.0; rv:(?''version''(?''major''/d+)(/.(?''minor''/d+)?)(?''letters''/w*))(?''extra''[^)]*)" />

NUEVO:

<userAgent match="Trident//7.0;.*rv:(?''version''(?''major''/d+)(/.(?''minor''/d+)?)(?''letters''/w*))(?''extra''[^)]*)" />

Puede probar si ASP.Net reconoce la revisión y el archivo .browser usando:

Response.Write (Request.Browser.MajorVersion)

Si eso devuelve 11, su error JS debería haberse ido. VOILA!

Actualizar:

Se lanzó un segundo parche para MS en octubre de 2013. Ahora pude quitar el archivo .browser y simplemente usar el parche. Hasta ahora funciona bien. - Consulte http://support.microsoft.com/kb/2836939



Solo se eliminó la etiqueta xhtmlConformance de Web.Config.


Un ISP diferente bloqueará sus servidores a una Compilación específica e IGNORARá valiosas correcciones. Los FASTHOSTS en el Reino Unido tienen sus servidores .net 3.5 bloqueados y no han aplicado las correcciones de IE, por lo que el programador debe presentar los archivos del navegador según sea necesario.

Es una política común bloquear los servidores con el grito del ISP "¡Asegura un entorno estable para el programador!"

Lo siguiente se obtuvo del sitio web de Scott Hanselman / solución detallada cuando IE10 estaba a punto de explotar en la escena y se ajustó recientemente. Sin él, por ejemplo, los extensores de marca de agua Ajax toolkit para cuadros de texto no aplican clases correctamente.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~

<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> <!-- Below is older entry --> <browser id="IE5to9" parentID="IE"> <identification> <capability name="majorversion" match="^[5-9]|[1-9]/d+" /> </identification> <capture> </capture> <capabilities> <capability name="activexcontrols" value="true" /> <capability name="backgroundsounds" value="true" /> <capability name="cookies" value="true" /> <capability name="css1" value="true" /> <capability name="css2" value="true" /> <capability name="ecmascriptversion" value="1.2" /> <capability name="frames" value="true" /> <capability name="javaapplets" value="true" /> <capability name="javascript" value="true" /> <capability name="jscriptversion" value="5.0" /> <capability name="msdomversion" value="${majorversion}${minorversion}" /> <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="tagwriter" value="System.Web.UI.HtmlTextWriter" /> <capability name="vbscript" value="true" /> <capability name="w3cdomversion" value="1.0" /> <capability name="xml" value="true" /> </capabilities> </browser> <browser id="IE6to9" parentID="IE5to9"> <identification> <capability name="majorversion" match="[6-9]|[1-9]/d+" /> </identification> <capture> </capture> <capabilities> <capability name="jscriptversion" value="5.6" /> <capability name="ExchangeOmaSupported" value="true" /> </capabilities> </browser> <!-- sample UA "Mozilla/4.0 (compatible; MSIE 6.0; Windows 95; PalmSource; Blazer 3.0) 16;160x160" --> <browser id="Treo600" parentID="IE6to9"> <identification> <userAgent match="PalmSource; Blazer" /> </identification> <capture> <userAgent match="PalmSource; Blazer 3/.0/)/s/d+;(?''screenPixelsHeight''/d+)x(?''screenPixelsWidth''/d+)$" /> </capture> <capabilities> <capability name="browser" value="Blazer 3.0" /> <capability name="cachesAllResponsesWithExpires" value="false" /> <capability name="canInitiateVoiceCall" value="true" /> <capability name="canRenderEmptySelects" value="true" /> <capability name="canSendMail" value="true" /> <capability name="cookies" value="true" /> <capability name="ecmascriptversion" value="1.1" /> <capability name="hidesRightAlignedMultiselectScrollbars" value="false" /> <capability name="inputType" value="keyboard" /> <capability name="isColor" value="true" /> <capability name="javascript" value="true" /> <capability name="jscriptversion" value="0.0" /> <capability name="maximumHrefLength" value="10000" /> <capability name="maximumRenderedPageSize" value="300000" /> <capability name="mobileDeviceManufacturer" value="" /> <capability name="mobileDeviceModel" value="" /> <capability name="preferredImageMime" value="image/jpeg" /> <capability name="preferredRenderingMime" value="text/html" /> <capability name="preferredRenderingType" value="html32" /> <capability name="preferredRequestEncoding" value="utf-8" /> <capability name="preferredResponseEncoding" value="utf-8" /> <capability name="rendersBreaksAfterHtmlLists" value="true" /> <capability name="requiredMetaTagNameValue" value="PalmComputingPlatform" /> <capability name="requiresAttributeColonSubstitution" value="false" /> <capability name="requiresContentTypeMetaTag" value="false" /> <capability name="requiresControlStateInSession" value="false" /> <capability name="requiresDBCSCharacter" value="false" /> <capability name="requiresFullyQualifiedRedirectUrl" value="false" /> <capability name="requiresHtmlAdaptiveErrorReporting" value="false" /> <capability name="requiresLeadingPageBreak" value="false" /> <capability name="requiresNoBreakInFormatting" value="false" /> <capability name="requiresOutputOptimization" value="false" /> <capability name="requiresPostRedirectionHandling" value="false" /> <capability name="requiresPragmaNoCacheHeader" value="true" /> <capability name="requiresUniqueFilePathSuffix" value="true" /> <capability name="requiresUniqueHtmlCheckboxNames" value="false" /> <capability name="screenBitDepth" value="24" /> <capability name="screenCharactersHeight" value="13" /> <capability name="screenCharactersWidth" value="32" /> <capability name="screenPixelsHeight" value="${screenPixelsHeight}" /> <capability name="screenPixelsWidth" value="${screenPixelsWidth}" /> <capability name="supportsAccessKeyAttribute" value="true" /> <capability name="supportsBodyColor" value="true" /> <capability name="supportsBold" value="true" /> <capability name="supportsCharacterEntityEncoding" value="true" /> <capability name="supportsCss" value="false" /> <capability name="supportsDivAlign" value="true" /> <capability name="supportsDivNoWrap" value="false" /> <capability name="supportsEmptyStringInCookieValue" value="true" /> <capability name="supportsFileUpload" value="false" /> <capability name="supportsFontColor" value="true" /> <capability name="supportsFontName" value="false" /> <capability name="supportsFontSize" value="true" /> <capability name="supportsImageSubmit" value="true" /> <capability name="supportsIModeSymbols" value="false" /> <capability name="supportsInputIStyle" value="false" /> <capability name="supportsInputMode" value="false" /> <capability name="supportsItalic" value="true" /> <capability name="supportsJPhoneMultiMediaAttributes" value="false" /> <capability name="supportsJPhoneSymbols" value="false" /> <capability name="supportsMultilineTextBoxDisplay" value="true" /> <capability name="supportsQueryStringInFormAction" value="true" /> <capability name="supportsRedirectWithCookie" value="true" /> <capability name="supportsSelectMultiple" value="true" /> <capability name="supportsUncheck" value="true" /> <capability name="tables" value="true" /> <capability name="type" value="Handspring Treo 600" /> </capabilities> <controlAdapters /> </browser> <browser id="IE5" parentID="IE5to9"> <identification> <capability name="majorversion" match="^5$" /> </identification> </browser> <browser id="IE50" parentID="IE5"> <identification> <capability name="minorversion" match="^/.0"/> </identification> <controlAdapters> <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="System.Web.UI.WebControls.Adapters.MenuAdapter" /> </controlAdapters> </browser> <browser id="IE55" parentID="IE5"> <identification> <capability name="minorversion" match="^/.5"/> </identification> <capabilities> <capability name="jscriptversion" value="5.5" /> <capability name="ExchangeOmaSupported" value="true" /> </capabilities> </browser> <browser id="IE5to9Mac" parentID="IE5to9"> <identification> <capability name="platform" match="(MacPPC|Mac68K)" /> </identification> <controlAdapters> <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="System.Web.UI.WebControls.Adapters.MenuAdapter" /> </controlAdapters> </browser> <browser id="IE4" parentID="IE"> <identification> <userAgent match="MSIE 4" /> </identification> <capture> </capture> <capabilities> <capability name="activexcontrols" value="true" /> <capability name="backgroundsounds" value="true" /> <capability name="cdf" value="true" /> <capability name="cookies" value="true" /> <capability name="css1" value="true" /> <capability name="ecmascriptversion" value="1.2" /> <capability name="frames" value="true" /> <capability name="javaapplets" value="true" /> <capability name="javascript" value="true" /> <capability name="jscriptversion" value="3.0" /> <capability name="msdomversion" value="4.0" /> <capability name="supportsFileUpload" value="true" /> <capability name="supportsMultilineTextBoxDisplay" value="false" /> <capability name="supportsMaintainScrollPositionOnPostback" value="true" /> <capability name="tables" value="true" /> <capability name="tagwriter" value="System.Web.UI.HtmlTextWriter" /> <capability name="vbscript" value="true" /> </capabilities> <controlAdapters> <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="System.Web.UI.WebControls.Adapters.MenuAdapter" /> </controlAdapters> </browser> <browser id="IE3" parentID="IE"> <identification> <capability name="majorversion" match="^3" /> </identification> <capture> </capture> <capabilities> <capability name="activexcontrols" value="true" /> <capability name="backgroundsounds" value="true" /> <capability name="cookies" value="true" /> <capability name="css1" value="true" /> <capability name="ecmascriptversion" value="1.0" /> <capability name="frames" value="true" /> <capability name="javaapplets" value="true" /> <capability name="javascript" value="true" /> <capability name="jscriptversion" value="1.0" /> <capability name="supportsMultilineTextBoxDisplay" value="false" /> <capability name="tables" value="true" /> <capability name="vbscript" value="true" /> </capabilities> <controlAdapters> <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="System.Web.UI.WebControls.Adapters.MenuAdapter" /> </controlAdapters> </browser> <browser id="IE3win16" parentID="IE3"> <identification> <userAgent match="16bit|Win(dows 3/.1|16)" /> </identification> <capture> </capture> <capabilities> <capability name="activexcontrols" value="false" /> <capability name="javaapplets" value="false" /> </capabilities> </browser> <browser id="IE3win16a" parentID="IE3win16"> <identification> <capability name="extra" match="^a" /> </identification> <capture> </capture> <capabilities> <capability name="beta" value="true" /> <capability name="javascript" value="false" /> <capability name="vbscript" value="false" /> </capabilities> </browser> <browser id="IE3Mac" parentID="IE3"> <identification> <userAgent match="PPC Mac|Macintosh.*(68K|PPC)|Mac_(PowerPC|PPC|68(K|000))" /> </identification> <capture> </capture> <capabilities> <capability name="activexcontrols" value="false" /> <capability name="vbscript" value="false" /> </capabilities> </browser> <gateway id="IE3AK" parentID="IE3"> <identification> <capability name="extra" match="; AK;" /> </identification> <capture> </capture> <capabilities> <capability name="ak" value="true" /> </capabilities> </gateway> <gateway id="IE3SK" parentID="IE3"> <identification> <capability name="extra" match="; SK;" /> </identification> <capture> </capture> <capabilities> <capability name="sk" value="true" /> </capabilities> </gateway> <browser id="IE2" parentID="IE"> <identification> <capability name="majorversion" match="^2" /> </identification> <capture> </capture> <capabilities> <capability name="backgroundsounds" value="true" /> <capability name="cookies" value="true" /> <capability name="tables" value="true" /> </capabilities> <controlAdapters> <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="System.Web.UI.WebControls.Adapters.MenuAdapter" /> </controlAdapters> </browser> <browser id="IE1minor5" parentID="IE"> <identification> <capability name="version" match="^1/.5" /> </identification> <capture> </capture> <capabilities> <capability name="cookies" value="true" /> <capability name="tables" value="true" /> </capabilities> <controlAdapters> <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="System.Web.UI.WebControls.Adapters.MenuAdapter" /> </controlAdapters> </browser> <gateway id="IEAOL" parentID="IE"> <identification> <capability name="extra" match="; AOL" /> </identification> <capture> </capture> <capabilities> <capability name="aol" value="true" /> <capability name="frames" value="true" /> </capabilities> </gateway> <gateway id="IEbeta" parentID="IE"> <identification> <capability name="letters" match="^([bB]|ab)" /> </identification> <capture> </capture> <capabilities> <capability name="beta" value="true" /> </capabilities> </gateway> <gateway id="IEupdate" parentID="IE"> <identification> <capability name="extra" match="; Update a;" /> </identification> <capture> </capture> <capabilities> <capability name="authenticodeupdate" value="true" /> </capabilities> </gateway>


Utilicé el archivo ie11.browser mencionado anteriormente por Sistemas-infoe, lo puse en la carpeta App_Browser y funcionó en Windows 2003, II6.

Para el código precompilado, asegúrese de eliminar __browserCapabilitiesCompiler.compiled de la carpeta bin para que reconozca el nuevo archivo.

Lo que no funcionó fue la solución dada aquí http://support.microsoft.com/kb/2836939/en-us También, poniendo este archivo en C: / Windows / Microsoft.NET / Framework / v4.0.30319 / Config / Browsers y registrarlo usando aspnet_regbrowsers.exe -i no funcionó.

Casi me olvido de mencionar. Si esta solución no hubiera funcionado, a continuación habría intentado esto. http://jwcooney.com/2013/11/19/asp-net-doesnt-detect-ie11/