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 originalString.extender({
'HTML' : function(){
var str = this.replace(/^\s*([\S\s]+?)\s*$/, '$1');
var regexps = [
/^<?[A-z]+>?$/,
/^<([A-z]+)[^>]*( \/)?>([\s\S]*?<\/\1>)?$/
];
if(regexps[0].test(str)){
return document.createElement(str);
}
if(regexps[1].test(str)){
var div = document.createElement('div');
div.innerHTML = str;
var elmnt = P(div).primerElemento(), tn = elmnt.tagName.toLowerCase();
if(tn !== 'script' && tn !== 'link'){
return elmnt;
}
var e = document.createElement(elmnt.tagName.toLowerCase());
var html = div.innerHTML;
html = html.replace(/^<[A-z]+ ?/, '').replace(/<\/[A-z]+>$/, '').replace(/( \/)?>$/, '');
html = html.split(' ');
for(var i = 0; act = html[i]; i++){
partes = act.split('=');
e.setAttribute(partes[0], partes[1].replace(/('|")(.+?)\1/, '$2'));
}
div.innerHTML = '';
div.appendChild(e);
return div.firstChild;
}
}
});
Sin embargo sigue habiendo un "problema". Si hago esto:
Código Javascript
:
Ver originalvar scr = "<script src='ejemplo.js' type='text/javascript'>";
document.body.insertBefore(scr.HTML(), document.body.firstChild);
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 (: