Seguimos con las capas!

Muy buenas otra vez
Supongo que ya te acordarás sobre este tema. Visto que no se podía hacer nada respecto a imprimir capas tanto en ie como en nestscape 4.x por el tema del elemento innerHTML dentro del DOM del netscape... Se me ocurrió que ya que absolutamente todas la secciones de la página que me está dando la guerra podría ocultar todas las capas menos la que me interesa imprimir y seguidamente hacer un window.print() y luego volver a mostrar las capas. Lo pruebo en ie y BIEEEEN! Funciona. Pero Oh! Sorpresa la mía cuando lo hago en netscape! (Curioso ¿no?) :

1 respuesta

Respuesta
1
Tal vez estés cometiendo un error con la sintaxis de ocultación de capas en Netscape. Sí, es distinta de la de Explorer :-(
Si en Explorer haces:
document.all.capa1.style.visibility='hidden';
(o 'visible', para mostrarla), en Netscape 4 se hace:
document.layers['capa1'].visibility='hide';
(o 'show', para mostrarla). Dios mío...
Me imagino que conoces la técnica básica de bifurcación de código por navegadores (detectando objetos del DOM). Te pongo un ejemplo:
if (document.all) document.all.capa1.style.visibility='hidden';
else if (document.layers) document.layers['capa1'].visibility='hide';
else alert('Su navegador no está soportado...');
El problema es que ambas técnicas son "propietarias". Como tanto Netscape 6 como Explorer 5 (y posteriores) soportan los métodos del DOM, podemos hacerlo del siguiente modo para cubrir todos los casos:
if (document.getElementById) document.getElementById('capa1').style.visibility='hidden';
else if (document.all) document.all.capa1.style.visibility='hidden';
else if (document.layers) document.layers['capa1'].visibility='hide';
else alert('Su navegador no está soportado.');
La primera rama será ejecutada por Netscape 6, Explorer 5 y 5.5 (y 6 beta). Explorer 4 se la saltará, porque no conoce el método document. GetElementById(), y ejecutará la segunda (document. All). Netscape 4 se saltará las dos primeras y se irá a la tercera (document. Layers). Otros navegadores más antiguos ejecutarán la cuarta.
Escribiendo código de esta forma, cuando Netscape 4 y Explorer 4 estén en las nieblas del olvido (no queda tanto) podrás, simplemente, "podar" tu código de las ramas que sobren, muy fácilmente.
Lo de Netscape 4, de todas formas, es realmente lamentable. Te animo a que vayas a www.mozilla.org y te bajes la última versión de Mozilla, el "Netscape" de código abierto. Van por la versión 0.9.1, pero a mí me va mejor que Explorer 5.5 en Windows NT (y en Linux no hay nada que lo supere).
Espero que sea eso, porque te aseguro que la ocultación de capas funciona en Netscape 4. Lo que ya no sé con tanta seguridad es si imprime bien...
No dudes en volverme a preguntar si tienes problemas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas