Как распечатать веб-страницу, не открыв всплывающее окно?
Я хочу напечатать веб-страницу с помощью JavaScript. Но я не хочу открывать страницу как всплывающие окна. Как я могу напечатать непосредственно веб-страницу, такую как "mypage.aspx", используя метод JavaScript window.print, не открывая его как всплывающее окно?
Также условие: "Я не хочу использовать ActiveX для этого"
Вот что я хочу попробовать:
var printWindow, printData; printWindow = window.open("", "printVersion", "menubar,scrollbars,width=640,height=480,top=0,left=0");
printData=document.getElementById("lblReport").innerHTML; printWindow.document.write(printData);
printWindow.document.close();
printWindow.print();
Ответы
Ответ 1
Самое простое решение - загрузить содержимое этого mypage.aspx в iframe, а затем в iframes onload event вызвать window.print.
<button onclick="printPage()">print</button>
<div id="printerDiv" style="display:none"></div>
<script>
function printPage()
{
var div = document.getElementById("printerDiv");
div.innerHTML = '<iframe src="mypage.aspx" onload="this.contentWindow.print();"></iframe>';
}
</script>
Ответ 2
<html>
<head>
<title>Print</title>
<link rel="stylesheet" type="text/css" media="all" href="all.css" />
<link rel="stylesheet" type="text/css" media="print" href="print.css" />
</head>
<body>
<p>I get printed</p>
<form>
<input type="button" onclick="window.print()" value="Print" />
</form>
</body>
</html>
Убедитесь, что all.css
находится сверху и print.css
внизу, он должен работать.
Ответ 3
Не уверен, что он работает, но вы можете попытаться создать невидимый iframe
, загрузить page2.aspx в него, а затем распечатать его.
Ответ 4
Um. Просто используйте window.print();
непосредственно на странице. Сам по себе он не открывает новое окно (кроме окна свойств печати для установки параметров печати).
Ответ 5
Вы можете просто использовать таблицу стилей печати CSS и вообще не использовать javascript - все, что пользователь должен сделать, это распечатать страницу. например.
<link rel="stylesheet" type="text/css" media="print" href="print.css" />