Я хочу распечатать веб-страницу с помощью JavaScript. Но я не хочу открывать страницу как всплывающие окна. Как я могу распечатать непосредственно веб-страницу как 'mypage.aspx' использование JavaScript window.print метод, не открывая его как всплывающее окно?
Также условие, 'Я не хочу использовать любой ActiveX для this'
Вот то, что я хочу попробовать:
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();
Самое простое решение - загрузить содержимое этого файла mypage.aspx в iframe, а затем в событии onload iframe вызвать 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>
<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
внизу, он должен работать.
Гм. Просто используйте window.print ();
прямо на странице. Сам по себе он не открывает новое окно (кроме окна свойств печати для установки параметров печати).
Не уверен, работает ли это, но вы можете попробовать создать невидимый iframe
, загрузить в него page2.aspx и затем распечатать его.
Вы можете просто использовать таблицу стилей печати CSS и вообще отказаться от использования javascript - все, что нужно сделать пользователю, это распечатать страницу. например
<link rel="stylesheet" type="text/css" media="print" href="print.css" />