Ver Mensaje Individual
  #18 (permalink)  
Antiguo 31/05/2011, 16:06
Avatar de _cronos2
_cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Cambiar tipo de nodo

Bueno creo que al final lo conseguí, no sé si valdrá para todos los navegadores, pero ahora mismo es lo que menos me importa
Código Javascript:
Ver original
  1. String.extender({
  2.  'HTML' : function(){
  3.   var str = this.replace(/^\s*([\S\s]+?)\s*$/, '$1');
  4.   var regexps = [
  5.                  /^<?[A-z]+>?$/,
  6.                  /^<([A-z]+)[^>]*( \/)?>([\s\S]*?<\/\1>)?$/
  7.                 ];
  8.   if(regexps[0].test(str)){
  9.    return document.createElement(str);
  10.   }
  11.   if(regexps[1].test(str)){
  12.    var div = document.createElement('div');
  13.    div.innerHTML = str;
  14.    var elmnt = P(div).primerElemento(), tn = elmnt.tagName.toLowerCase();
  15.    if(tn !== 'script' && tn !== 'link'){
  16.     return elmnt;
  17.    }
  18.    var e = document.createElement(elmnt.tagName.toLowerCase());
  19.    var html = div.innerHTML;
  20.    html = html.replace(/^<[A-z]+ ?/, '').replace(/<\/[A-z]+>$/, '').replace(/( \/)?>$/, '');
  21.    html = html.split(' ');
  22.    for(var i = 0; act = html[i]; i++){
  23.     partes = act.split('=');
  24.     e.setAttribute(partes[0], partes[1].replace(/('|")(.+?)\1/, '$2'));
  25.    }
  26.    div.innerHTML = '';
  27.    div.appendChild(e);
  28.    return div.firstChild;
  29.   }
  30.  }
  31. });
Sin embargo sigue habiendo un "problema". Si hago esto:
Código Javascript:
Ver original
  1. var scr = "<script src='ejemplo.js' type='text/javascript'>";
  2. document.body.insertBefore(scr.HTML(), document.body.firstChild);
  3. funcionDeEjmploJs();
inserto el script al principio del body para poder usar las funciones (suponiendo que este script esté más abajo). Total, que se carga todo bien, pero a la hora de la verdad, la función no va. Así que tengo que agregarlo un onload al script
Saludos y gracias a todos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red