FIXED THANKS TO @Francois Wahl - The timeout solutions worked. I have a href in my option to print which was stopping it from working. By removing it the print page option works with a two second delay. Thankyou everyone!!!!!
I have the following script and need to add a delay after WinPrint.focus();
in order to wait a second or two before it runs WinPrint.print();
.
I have tried numerous methods of delays from this and other forums with no luck. Any help would be very much appreciated.
When I use the setTimeout function, it stops the code within it from running.
<script type="text/javascript">
$('a.print-pdf-link').click(function () {
var prtContent = document.getElementById("page-content");
var WinPrint = window.open('', '', 'left=0,top=0,width=800,height=900,toolbar=0,scrollbars=0,status=0');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
});
</script>
I have tried the following:
<script type="text/javascript">
$('a.print-pdf-link').click(function () {
var prtContent = document.getElementById("page-content");
var WinPrint = window.open('', '', 'left=0,top=0,width=800,height=900,toolbar=0,scrollbars=0,status=0');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
setTimeout(function(){
WinPrint.print();
WinPrint.close();
}, 2000)
});
</script>
And
<script type="text/javascript">
$('a.print-pdf-link').click(function () {
var prtContent = document.getElementById("page-content");
var WinPrint = window.open('', '', 'left=0,top=0,width=800,height=900,toolbar=0,scrollbars=0,status=0');
var myVar;
function myFunction() {
myVar = setTimeout(alertFunc, 3000);
}
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
function alertFunc() {
WinPrint.print();
WinPrint.close();
}
});
</script>
And
<script type="text/javascript">
$('a.print-pdf-link').click(function () {
var prtContent = document.getElementById("page-content");
var WinPrint = window.open('', '', 'left=0,top=0,width=800,height=900,toolbar=0,scrollbars=0,status=0');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
setTimeout(() => WinPrint.print(), 1000);
WinPrint.close();
});
</script>