Al investigar los comentarios condicionales de JavaScript para IE, me encontré con @cc_on. Esto parece funcionar Sin embargo, el wikipedia entry en los comentarios condicionales proporciona el código siguiente para obtener más robustos detecciones de IE, específicamente IE6:/* @ cc_on y detección de IE6
/*@cc_on
@if (@_jscript_version > 5.7)
document.write("You are using IE8+");
@elif (@_jscript_version == 5.7 && window.XMLHttpRequest)
document.write("You are using IE7");
@elif (@_jscript_version == 5.6 || (@_jscript_version == 5.7 && !window.XMLHttpRequest))
document.write("You are using IE6");
@elif (@_jscript_version == 5.5)
document.write("You are using IE5.5");
@else
document.write("You are using IE5 or older");
@end
@*/
La cuestión es, estoy recibiendo una "espera constante" javascript error en !window.XMLHttpRequest
.
Claramente, Wikipedia necesita ayuda, y necesito hacerlo funcionar. ¿Puede alguien ayudarme?
"más robustos detecciones IE"? Creo que los comentarios condicionales proporcionan la forma más robusta de detección de IE posible. ** No ** confíe en la versión de JScript para determinar la versión de IE, ya que son independientes. Consulte el punto 4 de http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html#c1774947112904387635 Además, no debe usar la detección del navegador en absoluto ; use detección de características: http://www.nczonline.net/blog/2009/12/29/feature-detection-is-not-browser-detection/ –
@_jscript_version detección debe usarse solo si conoce la diferencia exacta entre el versiones del motor jscript y desea apuntar a esa diferencia de alguna manera, por ejemplo, emular una característica faltante. Por ejemplo, jscript 5.1 no tenía definidos los métodos call/apply de Function, ni tenía Array.prototype.push. Por lo tanto, es seguro detectar esta @_jscript_version y agregar soporte programático para estas características. Sin embargo, como dijo Marcel, no es seguro suponer que @_jscript_version de 5.1 se asigna a IE5.01 ya que puede obtener fácilmente jscript actualizado de Windows Update. –
@Vitaly: no quiero criticar demasiado, pero los ejemplos que dio se pueden probar con la detección de características, por lo que no tiene que probar también la versión de Javascript> = 1.3 o algo así. Solo use 'if (! Function.prototype.call) {Function.prototype.call = foo; } ', etc., como lo hace Oz.js: http://code.google.com/p/oz-js/source/browse/trunk/oz.js#224 –