Hola David,

On 10/2/06, David Arango <[EMAIL PROTECTED]> wrote:
> No se cómo veis la utilización de window.print() para un icono de esos
> típicos de "imprimir esta página". Me debato entre esto y utilizar
> directamente un generador de versiones para impresión que me ofrece mi
> CMS (del lado del servidor, aunque un poco malo).
>
> La idea es enriquecer la funcionalidad sin perjudicar a nadie, algo así:
>
> funcion imprimePagina() {
>   window.print ? window.print : window.location = 
> 'metodo_de_impresion?id=XXX';
> }
>
> En un enlace cuyo href ya apunta a "metodo_de_impresion?id=XXX"
>
> Así, si tu navegador lo soporta, puedes imprimir utilizando
> directamente su diálogo de impresión, en caso contrario utilizarías el
> método del CMS.

Pues yo también me debato ;)

Partiendo de que se incluye una hoja de estilos de impresión,
tendríamos dos formas de imprimir el documento:

a) Imprimirlo desde la vista de pantalla, ya sea desde el icono o
desde el menú del navegador

b) Imprimirlo desde una vista especialmente preparada para impresión.

Al hacerlo al estilo a), nos ahorramos un viaje, lo cual está bien,
pero no sabemos cómo va a quedar el documento una vez impreso. Si
tiramos por la opción b), vemos cómo va a quedar el documento impreso
pero para ello tenemos que hacer un viaje de más al servidor.

Así pues... es una decisión que hay que tomar y que no tiene
absolutamente nada que ver con javascript.

En lo que sí hace a javascript, una vez asignado el manejador del
evento onclick:

function print(e) {
    if (window.print) {
        window.print();
        return false;
    }
}

No es necesario marear la perdiz con el `window.location`. Si
disponemos de la función print, imprimimos. Si la función no existe,
dejamos que el clic en el enlace siga su curso.

Y ya que estamos (tiquismiquis que es uno), para averiguar si _algo_
existe y _es una función_, mejor usar

typeof window.print == "function"

o

window.print.constructor == Function

Aunque en el caso de `window.print` creo que se puede considerar irrelevante.

Salud.
-- 
Choan
<http://choangalvez.nom.es/>
_______________________________________________
javaEScript mailing list
[email protected]
http://lists.scriptia.net/listinfo.cgi/javaescript-scriptia.net

Responder a