Diferencia entre revisiones de «JavaScript»

De Dos Ideas.
Saltar a: navegación, buscar
(Ver también)
(Ver también)
 
(No se muestran 7 ediciones intermedias de 3 usuarios)
Línea 13: Línea 13:
 
* [[Concurrent Thread Javascript]], librería para manejo de hilos.
 
* [[Concurrent Thread Javascript]], librería para manejo de hilos.
  
 +
==Compatibilidad entre navegadores==
 +
===Problemas con IE===
 +
====Json is undefined====
 +
La version de IE7 e IE8 no tiene importado de forma nativa las librerias de Json, por lo tanto hay que importarlas.
 +
 +
< !--[if lt IE 8]>
 +
    <script type="text/javascript" src="/js/json2.js"></script>
 +
<![endif]-->
 +
 +
Bajar la libreria de json desde [[https://github.com/douglascrockford/JSON-js aca]].
 +
 +
====Change event listener====
 +
El comportamiento del listener del evento "change" cuando se lo bindeamos a un radio button es el siguiente:
 +
 +
* en IE 7 el evento se dispara cuando el focus abandona el radio button.
 +
 +
* en Firefox (3.x), Safari (3.x) y opera (96) el evento se dispara al momento de que el radio button es seleccionado, sin esperar a que el focus abandone el radio.
 +
 +
Un workaround para que IE se comporte igual que el resto de los navegadores es el siguiente:
 +
 +
if ($.browser.msie) {
 +
    $('input[name=radioXXX]').bind('click', function(){
 +
      this.blur();
 +
      this.focus();
 +
    });
 +
}
 +
 +
$('input[name=radioXXX]').bind('change', function(){
 +
    ........;
 +
});
  
 
==Ver también==
 
==Ver también==
Línea 19: Línea 49:
 
* [[Test de javascript con QUnit]]
 
* [[Test de javascript con QUnit]]
 
* [[Node.js]]
 
* [[Node.js]]
 +
* [[JasmineJs]]
 +
* [[Integrando JasmineJS con Ant]]
 +
* [[UnderscoreJs]]
 +
* [[Minificado Javascript con YUI Compressor]]

Revisión actual del 13:00 6 ago 2013

JavaScript es un lenguaje de programación interpretado, es decir, que no requiere compilación, utilizado principalmente en páginas web, con una sintaxis semejante a la del lenguaje Java y el lenguaje C.

Al igual que Java, JavaScript es un lenguaje orientado a objetos propiamente dicho, ya que dispone de Herencia, si bien esta se realiza siguiendo el paradigma de programación basada en prototipos, ya que las nuevas clases se generan clonando las clases base (prototipos) y extendiendo su funcionalidad.

Todos los navegadores modernos interpretan el código JavaScript integrado dentro de las páginas web. Para interactuar con una página web se provee al lenguaje JavaScript de una implementación del DOM.

Frameworks

JavaScript cuenta con infinidad de frameworks y librerias que otorgan diversa funcionalidad. Entre los más conocidos:

  • JQuery, un framework de aplicación base, sumamente extensible.
  • Prototype, un framework de aplicación base que permite definir clases, muy usado.
  • Rico, un framework de componentes de presentación [AJAX].
  • Concurrent Thread Javascript, librería para manejo de hilos.

Compatibilidad entre navegadores

Problemas con IE

Json is undefined

La version de IE7 e IE8 no tiene importado de forma nativa las librerias de Json, por lo tanto hay que importarlas.

< !--[if lt IE 8]>
    <script type="text/javascript" src="/js/json2.js"></script>
<![endif]-->

Bajar la libreria de json desde [aca].

Change event listener

El comportamiento del listener del evento "change" cuando se lo bindeamos a un radio button es el siguiente:

  • en IE 7 el evento se dispara cuando el focus abandona el radio button.
  • en Firefox (3.x), Safari (3.x) y opera (96) el evento se dispara al momento de que el radio button es seleccionado, sin esperar a que el focus abandone el radio.

Un workaround para que IE se comporte igual que el resto de los navegadores es el siguiente:

if ($.browser.msie) {
    $('input[name=radioXXX]').bind('click', function(){
      this.blur();
      this.focus();
    });
}

$('input[name=radioXXX]').bind('change', function(){
   ........;
});

Ver también