Tengo una aplicación .Net que crea dinámicamente una pequeña página HTML y la abre en una nueva ventana utilizando el método javascript document.open. Todo con esa funcionalidad está funcionando bien.¿Cómo se imprime desde una ventana emergente en javascript?
Ahora quiero agregar un botón a la página HTML que imprime la página. He intentado usar el siguiente código en vano:
<a href='print.html' onClick='window.print();return false;'>
<img src='images/printer.png' height='32px' width='32px'></a>
Cuando se hace clic en el botón en la ventana emergente, no pasa nada. Pero cuando el código fuente de esta página se guarda y se carga en un navegador como una página separada, el botón de impresión funciona perfectamente.
Parece que el problema se debe al hecho de que el código está en una ventana emergente.
[El problema ahora parece ser que el código está escrito en la ventana emergente después de que se abre.] ¿Alguien sabe una forma de solucionar este problema o alguna alternativa?
EDIT:
Otro método que he tratado con los mismos resultados:
<input type='button' onclick='window.print()' value='Print' />
y
<a href='javascript:window.print()'>
<img src='images/printer.png' height='32px' width='32px'></a>
nuevo EDIT:
El código anterior funciona en Firefox, pero no en IE7. ¿Alguna idea sobre cómo trabajar para IE?
EDITAR TODAVÍA OTRA:
Este es un caso de prueba utilizando el código que npupposted a continuación. En lugar de que el código de la ventana emergente viva en un archivo html separado, abro una URL en blanco y luego le escribo el código. Este paso parece ser lo que está causando el problema.
<html>
<head>
<title>main</title>
</head>
<body>
<h1>
Pop & print</h1>
<button onclick="pop();">
Pop</button>
<script type="text/javascript">
var POP;
function pop() {
var newWin = window.open('', 'thePopup', 'width=350,height=350');
newWin.document.write("<html><head><title>popup</title></head><body><h1>Pop</h1>" +
"<p>Print me</p><a href='print.html' onclick='window.print();return false;'>" +
"<img src='images/printer.png' height='32px' width='32px'></a></body></html>");
}
</script>
</body>
</html>
Esto tuvo el mismo resultado, trabaja en otra ventana del navegador, pero no de una ventana emergente. – sglantz
¡Hmm! Cuando hago clic en el botón, abre la pila de impresoras para que seleccione la impresora. ¿Tiene impresoras adjuntas? Tal vez no puede encontrar las impresoras? Pero de todos modos debería abrir el cuadro de selección de la impresora. – azamsharp
¿Has probado el código desde una ventana emergente? Eso parece ser lo que está causando el problema. – sglantz