Звоните print
в новом окне, а не в старом:
var wnd = window.open('http://stackoverflow.com');
wnd.print();
Мне не нравятся ваши шансы на то, что это не отразится на безопасности браузера. :-) «Внешний» объект окна вполне может не поддерживать print
(window
объекты бывают двух типов: «внешний» тип, к которому имеют доступ другие окна, и «внутренний» тип, который ссылается на себя, который имеет больше разрешений и т. д.) По крайней мере, вам, вероятно, придется подождать событие загрузки, но, в общем, лучше всего, это будет сложно.
Кажется, что работает для документов с тем же происхождением, поэтому Политика одинакового происхождения является фактором. Этот пример дает сбой в IE6 (буквально сбивает браузер), но работает для меня в IE7 в Windows и Chrome и Firefox 3.6 в Linux (а не в Opera 11 в Linux). Вероятно, не мешало бы поставить задержку / доходность, например ::1013*
var wnd = window.open(your_path_here);
setTimeout(function() {
wnd.print();
}, 0);
Вы сказали «слово документ» в своем вопросе, но ваш пример выглядит как веб-сайт. Я понятия не имею, будет ли это работать, если вы открываете документ Microsoft Word, загружая его в окно браузера.