Is there anyway to automatically run javascript:window.print()
when the page finishes loading?
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();
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>
<body onload="window.print()">
or
window.onload = function() { window.print(); }
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.
This script will run after the entire page has loaded.
<script type="text/javascript">
$(window).load(function() {
//This execute when entire finished loaded
window.print();
});
</script>
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>