Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/08/2009, 09:55
Avatar de Legoltaz
Legoltaz
 
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Lío enorme con frameworks y extend

Cita:
Iniciado por goyo_ Ver Mensaje
De donde sacaste ese codigo?
http://www.anieto2k.com/2008/12/01/e...de-javascript/

Estoy usando uno que lo cierto es que no entiendo, pero funciona correctamente.

Código javascript:
Ver original
  1. var DOMElement =
  2. {
  3.     extend: function(name,fn)
  4.     {
  5.         if(!document.all)
  6.             eval("HTMLElement.prototype." + name + " = fn");
  7.         else
  8.         {
  9.             //
  10.             //  IE doesn't allow access to HTMLElement
  11.             //  so we need to override
  12.             //  *document.createElement
  13.             //  *document.getElementById
  14.             //  *document.getElementsByTagName
  15.             //
  16.  
  17.             //take a copy of
  18.             //document.createElement
  19.             var _createElement = document.createElement;
  20.  
  21.             //override document.createElement
  22.             document.createElement = function(tag)
  23.             {
  24.                 var _elem = _createElement(tag);
  25.                 eval("_elem." + name + " = fn");
  26.                 return _elem;
  27.             }
  28.  
  29.             //take copy of
  30.             //document.getElementById
  31.             var _getElementById = document.getElementById;
  32.  
  33.             //override document.getElementById
  34.             document.getElementById = function(id)
  35.             {
  36.                 var _elem = _getElementById(id);
  37.                 eval("_elem." + name + " = fn");
  38.                 return _elem;
  39.             }
  40.  
  41.             //take copy of
  42.             //document.getElementsByTagName
  43.             var _getElementsByTagName = document.getElementsByTagName;
  44.  
  45.             //override document.getElementsByTagName
  46.             document.getElementsByTagName = function(tag)
  47.             {
  48.                 var _arr = _getElementsByTagName(tag);
  49.                 for(var _elem=0;_elem<_arr.length;_elem++)
  50.                     eval("_arr[_elem]." + name + " = fn");
  51.                 return _arr;
  52.             }
  53.         }
  54.     }
  55. };

Ej:
Código javascript:
Ver original
  1. DOMElement.extend(
  2.     "insert",
  3.     function(elem){
  4.         return this.appendChild(document.createElement(elem));
  5.     }
  6. );

Que vendría funcionando por ejemplo: document.body.insert("input");