79

Is there anyway to automatically run javascript:window.print() when the page finishes loading?

Jeroen
  • 60,696
  • 40
  • 206
  • 339
fmsf
  • 36,317
  • 49
  • 147
  • 195

6 Answers6

141

<body onload="window.print()"> or window.onload = function() { window.print(); }

Greg
  • 316,276
  • 54
  • 369
  • 333
20

The following code must be put at the end of your HTML file so that once the content has loaded, the script will be executed and the window will print.

<script type="text/javascript">
<!--
window.print();
//-->
</script>
Nathangrad
  • 1,426
  • 10
  • 25
drftorres
  • 227
  • 2
  • 4
8

Add the following code in your HTML page, and it will show print preview on page load.

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>

<script type="text/javascript">

$(document).ready(function () {
    window.print();
});

</script>
Daniyal Tariq
  • 181
  • 1
  • 3
  • 12
6

Use this script

 <script type="text/javascript">
      window.onload = function() { window.print(); }
 </script>
hojjat.mi
  • 1,414
  • 16
  • 22
1

If what you want is to open a separate window from the web browser you can use this:

  window.open(basePath + "Controller/Route/?ID=" + param, '_blank').print();
DanyMartinez_
  • 141
  • 1
  • 2
  • 14
0

For me, adding <script>window.print();</script> to the end of the page worked.


I didn't need the type="text/javascript" attribute, or even for the page to be wrapped in a <body> tag. However, all of my previous attempts to intuitively use the answers suggested here, of just writing window.onload=window.print or longer versions such as window.onload=()=>window.print(); did not work, and of course calling print on the newly created window does not wait for the contents to load.

Justin
  • 945
  • 12
  • 26