ago 08 19

Javascript – Manejar incompatibilidades con la Compilación Condicional

Tiempo estimado de lectura: 1,21 minutos


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:

Copame! Digg it Digg it Reddit Del.icio.us
Deja un Comentario

Tags permitidos:

  • <a href="" title="">
  • <abbr title="">
  • <acronym title="">
  • <blockquote cite="">
  • <code>
  • <em>
  • <strong>