javascript asp.net internet-explorer-9

Error de JavaScript IE9: SCRIPT5007: no se puede obtener el valor de la propiedad ''ui'': el objeto es nulo o indefinido



asp.net internet-explorer-9 (8)

Bueno, también deberías intentar agregar el código Javascript en una función, luego llamar a la función después de que el cuerpo del documento se haya cargado ... me funcionó :)

Mi sitio web funciona bien en Chrome, Firefox e Internet Explorer 8. Pero en Internet Explorer 9, errores muy extraños se desencadenan al pasar el ratón sobre los componentes.

SCRIPT5007: No se puede obtener el valor de la ''ui'' propiedad: objeto es nulo o no definido ScriptResource.axd d = sTHNYcjtEdStW2Igkk0K4NaRiBDytPljgMCYpqxV5NEZ1IEtx3DRHufMFtEMwoh2L3771sigGlR2bqlOxaiwXVEvePerLDCL0hFHHUFdTOM0o55K0 & t = ffffffffd37cb3a1, la línea 181 caracteres 1914?

Y siguiendo el enlace al error en el javascript me muestra estos bits de código:

onNodeOver:function(B,A){A.ui.onOver(B)},onNodeOut:function(B,A){A.ui.onOut(B)}

Estoy un poco despistado sobre cómo resolver este error. He visto this solución, pero eso no resolvió el problema para mí.

¿Algunas ideas?


Estaba teniendo el mismo problema en IE9. Seguí la respuesta anterior y agregué la línea:

<meta http-equiv="X-UA-Compatible" content="IE=8;FF=3;OtherUA=4" />

en mi <head> y funcionó.


Esto funcionó para mí en IE 11:

<meta http-equiv="x-ua-compatible" content="IE=edge; charset=UTF-8">


He escrito un código que olfatea IE4 o superior y actualmente funciona perfectamente en los sitios para los clientes de mi empresa, así como en mis sitios personales.

Incluya las siguientes variables enumeradas de constante y función en un archivo de inclusión de JavaScript en su página ...

//methods var BrowserTypes = { Unknown: 0, FireFox: 1, Chrome: 2, Safari: 3, IE: 4, IE7: 5, IE8: 6, IE9: 7, IE10: 8, IE11: 8, IE12: 8 }; var Browser = function () { try { //declares var type; var version; var sVersion; //process switch (navigator.appName.toLowerCase()) { case "microsoft internet explorer": type = BrowserTypes.IE; sVersion = navigator.appVersion.substring(navigator.appVersion.indexOf(''MSIE'') + 5, navigator.appVersion.length); version = parseFloat(sVersion.split(";")[0]); switch (parseInt(version)) { case 7: type = BrowserTypes.IE7; break; case 8: type = BrowserTypes.IE8; break; case 9: type = BrowserTypes.IE9; break; case 10: type = BrowserTypes.IE10; break; case 11: type = BrowserTypes.IE11; break; case 12: type = BrowserTypes.IE12; break; } break; case "netscape": if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) { type = BrowserTypes.Chrome; } else { if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1) { type = BrowserTypes.FireFox } }; break; default: type = BrowserTypes.Unknown; break; } //returns return type; } catch (ex) { } };

Entonces, todo lo que tiene que hacer es usar cualquier funcionalidad condicional, como ...

es decir. value = (Browser() >= BrowserTypes.IE) ? node.text : node.textContent;

o WindowWidth = (((Browser() >= BrowserTypes.IE9) || (Browser() < BrowserTypes.IE)) ? window.innerWidth : document.documentElement.clientWidth);

o sJSON = (Browser() >= BrowserTypes.IE) ? xmlElement.text : xmlElement.textContent; sJSON = (Browser() >= BrowserTypes.IE) ? xmlElement.text : xmlElement.textContent;

¿Captar la idea? Espero que esto ayude.

Ah, es posible que desee tener en cuenta la función de Navegador (QA) después de liberar IE10, solo para verificar que no cambiaron las reglas.


Muchas bibliotecas de JavaScript (especialmente las no recientes) no manejan bien IE9 porque rompe con IE8 en el manejo de muchas cosas.

El código JS que olfatea IE fallará con bastante frecuencia en IE9, a menos que dicho código se reescriba para manejar específicamente IE9.

Antes de actualizar el código JS, debe usar la metaetiqueta "Compatible con X-UA" para forzar su página web al modo IE8.

EDITAR: No puedo creer eso, 3 años después y estamos en IE11, y todavía hay votos para esto. :-) Muchas bibliotecas JS ahora deberían soportar al menos IE9 de forma nativa y la mayoría soportan IE10, por lo que es poco probable que necesite la metaetiqueta actualmente, a menos que no tenga la intención de actualizar su biblioteca JS. Pero tenga en cuenta que IE10 cambia las cosas relacionadas con los scripts de dominio cruzado y algunos saltos de código de biblioteca basados ​​en CDN. Verifica la versión de tu biblioteca. Por ejemplo, Dojo 1.9 en el CDN se romperá en IE10, pero 1.9.1 lo resuelve.

EDICION 2: Oigan, chicos, REALMENTE necesitan hacer sus actos juntos ahora. ¡¡¡Ahora estamos a mediados de 2014 !!! TODAVÍA me estoy levantando-votos para esto! ¡Revisa tus sitios para deshacerte de las viejas dependencias de IE codificadas!

Suspiro ... Si hubiese sabido que esta sería, con mucho, mi respuesta más popular, probablemente hubiera dedicado más tiempo a pulirla ...

EDIT 3: Ahora es casi 2016. Votos ascendentes siguen funcionando ... Supongo que hay muchos códigos heredados ... Algún día nuestros programas nos superarán ...



Yo también estaba enfrentando el mismo problema.

Estaba usando el código siguiente en la página .aspx sin escribir la configuración de autenticación en el archivo web.config. Después de escribir la configuración en Web.config, puedo ejecutar mi código.

<% If Request.IsAuthenticated Then%> <table></table> <%end if%>


comprueba si hay una coma al final.

}, { name: ''МОФ. Перелив из баков. м3/ч'', data: graph_high3, dataGrouping: { units: groupingUnits, groupPixelWidth: 40, approximation: "average", enabled: true, units: [[ ''minute'', [1] ]] } } // if , - SCRIPT5007