Contenido

createElements() una función para ahorrarte mucho código

3 Mar

+ 5

Uno de los problemas con los que nos encontramos con Javascript es la cantidad de líneas de código que hemos de escribir para trabajar con DOM, pese a haber frameworks que se encargan de que nuestro código sea más ligero, no siempre podemos disponer de este lujo.

La creación de elementos es algo bastante laborioso, y por ello los frameworks ponen especial empeño en mejorar este punto ya que es algo que cada vez más usamos en nuestros scripts. createElements() es una función que facilita esta tarea sin necesidad de depender de un framework, 30 líneas que te ahorrarán 30.000.

La función 

function createElements( args ) {
   var el;
   if( typeof(args) == "string" ) {
      el = document.createTextNode(args);
   } else if ( typeof(args) == "object" ) {
    el = document.createElement( args.tag );
     if ( args.attributes ) {
        for ( i in args.attributes ) {
           el.setAttribute(i, args.attributes[i]);
        }
     }
     if ( args.style ) {
        for ( i in args.style ) {
           el.style[i] = args.style[i];
        }
     }
     if ( args.children ) {
        for ( var i = 0; i < args.children.length; i++ ) {
           el.appendChild( createElements( args.children[i] ) );
        }
     }
  }
  return el;
}  

Modo de empleo

var node = createElements({
   tag: "div",
   attributes: {
      id: "google_link"
   },
   children: [
      {
         tag: "a",
         attributes: {
           href: "http://www.google.com"
        },
        style: {
           textDecoration: "none",
           fontWeight: "bold"
        },
        children: [
           {
              tag: "img",
              attributes: {
                 src: "http://www.google.com/intl/en_ALL/images/logo.gif",
                 alt: "Google!",
                 title: "Google!",
                 border: "0"
              },
              style: {
                 width: "200px",
                 height: "200px"
              }
           },
           {
              tag: "br"
           },
          "Click here to go to Google!"
        ]

     }
  ]
});
document.body.appendChild(node);  

Actualización

Una pequeña modificación, para hacerlo más cómodo.

HTMLElement.prototype.add = function(args) {
   var el;
   if( typeof(args) == "string" ) {
      el = document.createTextNode(args);
   } else if ( typeof(args) == "object" ) {
    el = document.createElement( args.tag );
     if ( args.attributes ) {
        for ( i in args.attributes ) {
           el.setAttribute(i, args.attributes[i]);
        }
     }
     if ( args.style ) {
        for ( i in args.style ) {
           el.style[i] = args.style[i];
        }
     }
     if ( args.children ) {
        for ( var i = 0; i < args.children.length; i++ ) {
           el.appendChild( this.add( args.children[i] ) );
        }
     }
  }
  this.appendChild(el);
}

//USO:
$("header").add({...});

xRay, mira las entrañas de las páginas web

23 Dic

+ 9

Cuando detectamos un error en nuestras aplicaciones, solemos bajar un nivel y dirigirnos directamente al código para ver por que y por donde está fallando.

Para ello solemos recurrir a herramientas que nos ayudan a visualizar el código de una forma más cómoda y directa como Firebug, o algunos de sus versiones para otros navegadores (Companion.jsOpera Developer Console, Inspector Web, …).

Aunque lamentablemente no siempre tenemos a mano una de estas herramientas, y tenemos que mirar el código completo desde el propio navegador o editor de texto. Para evitar esto, nacen aplicaciones como xRay, que nos permite integrarlas como un simple marcador y nos permite conocer las propiedades básicas de los elementos que componen una página web.

xray_in_anieto2k.jpg

Instalación

  1. Guardamos esta dirección como un marcador en nuestro navegador.
  2. Lo lanzamos en cualquier página
  3. Hacemos click sobre cualquier elemento de la página

Compatibilidad

En la página de la aplicación, aseguran que ha sido probado en Internet Explorer 6.0,  y todas las versiones basadas en Webkit y Mozilla (Safari, Firefox, Camino,…)

Easy DOM creation para jQuery y Prototype

16 Nov

+ 1

La creación de elementos DOM en nuestro Javascript suele ser un calvario si necesitamos crear una gran cantidad de elementos. Pero gracias a aplicaciones como Easy DOM Creation, esto se va a acabar.

Easy DOM Creation, es un plugin para jQuery y Prototype, portado del famoso MochiKit.DOM, nos permite abstraernos de lo laborioso de crear elementos DOM y añadirlos a nuestra aplicación. Usando un sistema bastante lógico y visual, consiguen que crear un tabla con sus correspondientes filas y columnas sea algo simple y compacto.

var table =
   $.TABLE({ Class:"MyTable" },
      $.TBODY({},
         $.TR({ Class:"MyTableRow" },
            $.TD({ Class:"MyTableCol1" }, 'howdy' ),
            $.TD({ Class:"MyTableCol2" },
               'Link: ',
               $.A({ Class:"MyLink", href:"http://www.example.com" },
                  'example.com'
               )
            )
         )
      )
   );

[Descargar

DebugBar, otro inspector de páginas web para Internet Explorer

8 Nov

+ 8

Hace ya mucho tiempo que vengo usando DebugBar, pero nunca había comentado nada de ello. Y ayer Dehiv, me lo recordó.

debugtoolbar-en.gif

Buscando imagenes para poner el post y ahorrarme tener que hacerlas con el paint he llegadoa la página oficial del proyecto, y cual ha sido mi sorpresa al enterarme de que Companion.js es la versión lite de Debugbar.

debugbar-script.gifdebugbar-info.gifdebugbar-http.gifdebugbar-dom.gif

Carácterísticas

  • DOM Inspector
  • HTTP Inspector
  • Javascript Inspector y Consola Javascript
  • HTML Validator
  • Redimensión de la página
  • Permite mostrar alerts con los errores
  • Selector de Color
  • Enviar capturas de pantalla por correo
  • Visualización de Cookies

Instalación

  • Descargamos la última versión
  • Seguimos los pasos de la instalación
  • Activamos la Toolbar desde el menú de Internet Explorer (Ver > Barras de Herramientas)

DOM Inspector para Internet Explorer y Firefox

7 Nov

+ 6

Todas las páginas web se componen de un esqueleto formado por HTML, y si usamos una metáfora que me acabo de inventar, el DOM sería el alma de este esqueleto. Ya que es algo que sabemos que está ahi, pero no podemos ver a simple vista. Usando herramientas como Firebug o Companion.js para IE podemos ver las propiedades que cada elemento nos ofrece.

En SlayerOffice, publican una alternativa bastante interesante para la mayoría de navegadores (Firefox, Netscape 8, Opera 7.5 e Internet Explorer).

dominspector.JPG

¿Como instalarlo?

  1. Añade el este link a tus marcadores

¿Como usarlo?

  1. Estando en cualquier página hacemos click sobre el marcador guardado anteriormente.
  2. Este generará un layer flotante que irá mostrando la información sobre el elemento por el que pasamos con el ratón.