Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to open a file with print dialogue box using JavaScript

I want to open one word document using JavaScript as well as open print dialogue box for that opened document window.

Here is my code.

window.open('http://www.tizaq.com');

window.print();

It works, but the print dialogue gets opened for the current window, not the newly opened window. How do I do it?

like image 497
Coder Avatar asked Dec 16 '22 15:12

Coder


1 Answers

Call print on the new window rather than the old:

var wnd = window.open('http://stackoverflow.com');
wnd.print();

I don't like your odds, though, of it not falling afoul of browser security. :-) The "external" window object may well not support print (window objects come in two types, the "external" type that other windows have access to, and the "internal" type that references itself, which has more permissions, etc.) At the least, you'll probably have to wait for the load event, but I best in general it's going to be tricky.

It seems to work for documents with the same origin, so the Same Origin Policy is a factor. That example crashes in IE6 (literally crashes the browser), but works for me in IE7 on Windows, and Chrome and Firefox 3.6 on Linux (and not in Opera 11 on Linux). Probably wouldn't hurt to put a delay / yield in there, e.g.:

var wnd = window.open(your_path_here);
setTimeout(function() {
    wnd.print();
}, 0);

You said "word document" in your question, but your example looks like a website. I have no idea whether this would work if you were opening a Microsoft Word document by loading it into a browser window.

like image 56
T.J. Crowder Avatar answered May 01 '23 13:05

T.J. Crowder