Escribiendo Layers

El contenido de tus capas (el texto y el HTML) puede ser cambiado (re-escrito) usando un truco. Es bien conocido que Internet Explorer tiene la habilidad de cambiar lo que esta dentro de un tag DIV, pero pocos saben que se puede hacer una cosa similar en Netscape. Se puede hacer utilizando "document.write".

Internet Explorer 4.0:

En Explorer puedes accesar el HTML dentro de un tag DIV (o bien cualquier otro tag) simplemente escribiendo algo similar a lo siguiente:

document.all.divID.innerHTML = "tu texto nuevo"

Cuando divID es el ID del tag DIV que quieres cambiar. Hay otra manera de escribirlo, la cual yo prefiero:

document.all["divID"].innerHTML = "tu texto nuevo"

De esta manera evalúa "divID" como una tira "string" que nos será más útil si queremos trabajarlo doble-browser.

Netscape Navigator 4.0:

Esencialmente cada capa es su propio documento. El tiene la mayoría de las capacidades del documento madre. Y, en lo que se refiere a esta lección, tu puedes cambiar lo que esta dentro de este documento.

Normalmente para cambiar, o re-escribir, lo que esta en este documento usarías el comando document.write() para el texto, sin olvidar el comando document.close() para indicar que el proceso de re-escribir se ha terminado:

document.open()
document.write("tu texto nuevo")
document.close()

Para una capa CSS puedes usar el "array" de Netscape Layers() antes de usar document .write() y document.close():

document.layers["divID"].document.open()
document.layers["divID"].document.write("tu texto nuevo")
document.layers["divID"].document.close()

Juntando los dos

En este caso, las diferencias entre las interpretaciones IE y Netscape cooperan con nosotros para que podamos hacer una sola función que pueda hacer las dos cosas al mismo tiempo:

function layerWrite(id,nestref,text) {
	if (ns4) {
		if (nestref) var lyr = eval('document.'+nestref+'.document.'+id+'.document')
		else var lyr = document.layers[id].document
		lyr.open()
		lyr.write(text)
		lyr.close()
	}
	else if (ie4) document.all[id].innerHTML = text
}

Usando esta función todo lo que tienes que hacer es decirle que capa tiene que cambiar, y a que texto tiene que cambiarlo:

layerWrite("mylayer",null,"tu texto aquí")

Ver writing1-function.html para un ejemplo de una capa que se re-escribe.

Casa Próxima Lección: Cambiando Estilos
copyright 1998 Dan Steinman