@
caricatos:
Hola otra vez. ¿A qué te refieres con
entrecorchetando el nuevo método?
@
MaBoRaK:
Sí, si puedo hacer eso que me comentas, pero no en IE, esa es mi duda. Directamente
tipoDIVs es undefined. Si no me equivoco,
.constructor es una propiedad que devuelve un [HtmlDIVElement], o lo que ha comentado
caricatos (que tampoco sé escribirlo correctamente). No estoy intentando hacer
prototype a un DIV directamente, sino a todos los DIVs a la vez
---------------------------------
Bueno, creo que me tendré que quedar con algo como ésto:
Código PHP:
<div id="capa1">Hola!</div>
<div id="capa2">Qué tal!</div>
<div id="capa3">Muy bien!</div>
<script type="text/javascript">
// document.getElementById abreviado
function $(x) { return document.getElementById(x); }
// Definición del método
var functionSetColor = function(col) {
this.style.color = col;
}
// Adjuntado del método a todos los DIVs
try {
var tipoDIVs = document.createElement("DIV").constructor;
tipoDIVS.prototype.setColor = functionSetColor;
} catch(err) {
var DIVs = document.getElementsByTagName("DIV");
for(var i in DIVs)
DIVs[i].setColor = functionSetColor;
}
$("capa1").setColor("orange");
$("capa2").setColor("red");
$("capa3").setColor("#925ff7");
</script>
Aunque ese
try & catch podría meterse en una función y reutilizarse para cualquier tipo HTML (divs, inputs...) y cualquier función que no sea sólo
functionSetColor, eso luego lo haré.
A ver si se nos ocurre algo un poco más
cómodo.
Gracias por responder.
Un saludo!