js window.open then print()
Turgut gave the right solution. Just for clarity, you need to add close after writing.
function openWin()
{
myWindow=window.open('','','width=200,height=100');
myWindow.document.write("<p>This is 'myWindow'</p>");
myWindow.document.close(); //missing code
myWindow.focus();
myWindow.print();
}
What worked for me was adding myWindow.document.close()
after myWindow.document.write()
. Here's my solution with a timeout to wait for the new window to finish loading (if you have a lot to load):
var win = window.open('', 'PrintWindow');
win.document.write('Stuff to print...');
setTimeout(function () {
win.document.close();
win.focus();
win.print();
win.close();
}, 1000);
checkout: window.print() not working in IE
Working sample: http://jsfiddle.net/Q5Xc9/1/