<html> <head> <script type="text/javascript"> var URL = "http://localhost:8000/foobar/"; var W = window.open(URL); **Note1** W.window.print(); </script> </head> <p> Print ME...............</p> </html>
I am using this script to print a webpage. My views render this page and The JS take care all other things.
But I dont want to open new window for that. So, What should I use instead of window.open(URL)
so no new window
opens. Similarly, I don’t want to open new window for print function
.So, Whenever I render this page it do all stuff on the same page. No new window, No new tab. How can I achieve this. I google but nothing seems working.
Advertisement
Answer
You can do this using a hidden iFrame (I’m using jquery for the example):
function loadOtherPage() { $("<iframe>") // create a new iframe element .hide() // make it invisible .attr("src", "/url/to/page/to/print") // point the iframe to the page you want to print .appendTo("body"); // add iframe to the DOM to cause it to load the page }
This will load the page you want to print. To print, you can add javascript code to the print page so that it gets printed after loading:
$(document).ready(function () { window.print(); });
This will print the page without showing a new window. I’ve tested this in IE8,9 and Google Chrome, so I’m not sure if this works for Safari or Firefox, though.