Hace unos dÃas descubrà una herramienta considerablemente útil cuando hablamos de compatibilidad de browsers en la programación Javascript. Se llama compilación condicional ya que discrimina los motores de compilación y ejecución que traen los browsers.
Para utilizar esta herramienta, hay que activar la compilación condicional agregando el comando @cc_on, luego se usa la sentencia que necesitemos. Se recomienda usar los condicionales dentro de comentarios para los motores de javascript que no lo soporten. Es asà como entonces podemos usar todas estas variables predefinidas:
| Variable | Descripción |
| @_win32 | Devuelve true Si corre en un sistema Win32 (windows 95, 98 o XP). |
| @_win16 | Devuelve true Si corre en un sistema Win16 (Windows 95). |
| @_mac | Devuelve true Si corre en un sistema Apple Macintosh. |
| @_alpha | Devuelve true Si corre en un procesador DEC Alpha. |
| @_x86 | Devuelve true Si corre en un procesador Intel. |
| @_mc680x0 | Devuelve true Si corre en un procesador Motorola 680×0. |
| @_PowerPC | Devuelve true Si corre en un procesador Motorola PowerPC. |
| @_jscript | Siempre devuelve true. |
| @_jscript_build | Devuelve el número de construcción (build) del motor Javascript. |
| @_jscript_version | Contiene la versión Javascript soportada en un formato mayor.menor. |
Junto a condicionales if:
@if (condition1)
text1
[@elif (condition2)
text2]
[@else
text3]
@end
Veamos ejemplos
Para detectar un IE7, podemos usar:
var IE7 = false /*@cc_on || @_jscript_version == 5.7 @*/;
Lo mismo pero para detectar el IE6, podemos usar:
var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
Para discriminar nuestro código según las versiones de Javascript soportados:
alert(@if (@_win32) “Usando Windows NT o Windows 95″ @else “Usando Windows 3.1″ @end)
Se puede tambien usar @set para setear variables y asà usarlas según sea necesario.
@set @myvar1 = 12
@set @myvar2 = (@myvar1 * 20)
@set @myvar3 = @_jscript_version
Los operadores lógicos que se pueden usar dentro de los paréntesis de un condicional son:
- ! ~
- * / %
- + –
- << >> >>>
- < <= > >=
- == != === !==
- & ^ |
- && ||
Algo muy útil que nos puede ahorrar bastante tiempo y dolores de cabeza.
Fuentes:









