La sección de impresión de la secuencia de comandos de la página funciona perfectamente en IE, pero hay problemas en Firefox

En mis batallas para encontrar una solución para imprimir solo un área de la página que funcione dentro de WordPress, encontré un pequeño script excelente que satisface perfectamente mis necesidades ... pero solo en el navegador IE. Por alguna razón, Firefox no quiere jugar a la pelota.

El guión es:

function printURL(sHref) {
    if(document.getElementById && document.all && sHref) {
        if(!self.oPrintElm) {
            var aHeads = document.getElementsByTagName('HEAD');
            if(!aHeads || !aHeads.length)
                return false;
            if(!self.oPrintElm)
                self.oPrintElm = document.createElement('LINK');
            self.oPrintElm.rel = 'alternate';
            self.oPrintElm.media = 'print';
            aHeads[0].appendChild(self.oPrintElm);
        }

        self.oPrintElm.href = sHref;
        self.focus();
        self.print();

        return true;
    }
    else 
        return false;
}

Llamado por:

<a onclick="printURL(this.href); return false;" href="http://printstuff.com" target="_blank">print</a>

Esto funciona en IE, pero no en FF. No sé mucho sobre JavaScript, por lo que le agradecería que me dijera si hay algo que vea que le esté dando dolores de cabeza a Firefox.

Por cierto, tengo que seguir una ruta de JavaScript en lugar de usar un archivo CSS de impresión, ya que el área que quiero imprimir (un cupón) está configurada en una tabla que obviamente está configurada en el contenedor del tema de WordPress y en los divs de envoltura, lo que lo hace Es difícil aislarlo para imprimir.

También he experimentado con la impresión de iframe, con la que hice algunos avances, pero IE me da problemas allí (rolleyes). Así que este script de arriba me parece una buena respuesta, excepto que Firefox no hace nada cuando hago clic en 'imprimir'. Muchas gracias.

preguntado el 27 de agosto de 11 a las 23:08

Solo quita el && document.all from the if y también podría funcionar en Firefox. -

1 Respuestas

document.all prueba falsa en todos los navegadores que no sean IE. Por lo tanto, su código solo ejecuta explícitamente el self.print() línea solo en IE.

Respondido 28 ago 11, 06:08

está bien. Gracias. De vuelta a la mesa de dibujo. - prisma de agua

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.