una - abrir ventana emergente javascript
¿Imprimiendo una página web usando solo url y sin abrir una ventana nueva? (4)
En referencia a la respuesta de @ragon . actualizado en la parte superior de la misma.
Puede hacerlo utilizando un iFrame (no oculto porque iFrame oculto imprime la página en blanco en las últimas versiones de los navegadores. Puede ocultarse después de que se active la impresión)
function loadOtherPage(link) {
$("<iframe class=''printpage''>") // create a new iframe element
.attr("src", link) // point the iframe to the page link you want to print
.appendTo("body");
}
Esto cargará el enlace de la página que desea imprimir. Al cargar el enlace de la página de impresión puede llamar a javascript.
$(document).ready(function () {
window.print();
});
window.onafterprint = function () {
$(''.printpage'', window.parent.document).hide();
}
Esto imprimirá la página desde la misma ventana y el evento onafterprint se activará cuando una página comience a imprimir, o si el cuadro de diálogo de impresión se ha cerrado.
window.parent.document
es para ocultar el bloque iFrame en la página principal.
<html>
<head>
<script type="text/javascript">
var URL = "http://localhost:8000/foobar/";
var W = window.open(URL); **Note1**
W.window.print();
</script>
</head>
<p> Print ME...............</p>
</html>
Estoy usando este script para imprimir una página web. Mis puntos de vista representan esta página y The JS se encarga de todas las demás cosas.
Pero no quiero abrir una nueva ventana para eso. Entonces, ¿qué debo usar en lugar de window.open(URL)
para que no new window
abra no new window
? Del mismo modo, no quiero abrir una nueva ventana para print function
. Por lo tanto, siempre que represente esta página, haga todas las cosas en la misma página. No hay nueva ventana, No hay nueva pestaña. Cómo puedo conseguir esto. Busco en google pero nada parece funcionar.
Hay un buen ejemplo en MDN sobre cómo hacerlo con un iframe
oculto https://developer.mozilla.org/en-US/docs/Printing#Print_an_external_page_without_opening_it
Puedes hacer esto usando un iFrame oculto (estoy usando jquery para el ejemplo):
function loadOtherPage() {
$("<iframe>") // create a new iframe element
.hide() // make it invisible
.attr("src", "/url/to/page/to/print") // point the iframe to the page you want to print
.appendTo("body"); // add iframe to the DOM to cause it to load the page
}
Esto cargará la página que desea imprimir. Para imprimir, puede agregar código javascript a la página de impresión para que se imprima después de cargar:
$(document).ready(function () {
window.print();
});
Esto imprimirá la página sin mostrar una nueva ventana. He probado esto en IE8,9 y Google Chrome, así que no estoy seguro de si esto funciona para Safari o Firefox.
function CallPrint() {
var prtContent = document.getElementById(''main'');
var WinPrint = window.open('''', '''', ''width=800,height=650,scrollbars=1,menuBar=1'');
var str = prtContent.innerHTML;
WinPrint.document.write(str);
WinPrint.document.close();
WinPrint.focus();
}
Llame a esta función javascript al hacer clic en el botón Imprimir. "Main" es el ID del div que tenemos que imprimir sin abrir en una nueva ventana. Quiero notificar que esto imprimirá el div de la página actual. Probar y rever en caso de cualquier problema.
Gracias,
Gourav