Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Печать страницы (https://javascript.ru/forum/events/31187-pechat-stranicy.html)

Slavenin 29.08.2012 16:29

Печать страницы
 
есть простая функция
function autoprint(aId)
{
var atext = document.getElementById(aId).innerHTML;
var captext = window.document.title;
var prwin = open('');
prwin.document.open();
prwin.document.writeln('<html><head><title>Версия для печати<\/title> ');
prwin.document.writeln('<link media="screen" href="apm_print.css" type="text/css" rel="stylesheet">');
prwin.document.writeln('<script type="text/javascript" language="javascript" src="jquery.js"><\/script>');
prwin.document.writeln('<script type="text/javascript">');
prwin.document.writeln('$(document).ready(function() {window.print();});');
prwin.document.writeln('<\/script>');
prwin.document.writeln('<\/head><body text="#000000" bgcolor="#FFFFFF"><div onselectstart="return false;" oncopy="return false;">');
prwin.document.writeln('<div id="schet_pd" style="margin-bottom:5px;"><a href="" onclick="window.print();return false;">Печать<\/a> • <a href="javascript://" onclick="window.close();">Закрыть окно<\/a><\/div><hr>');
prwin.document.writeln('<h1>'+captext+'<\/h1>');
prwin.document.writeln(atext);
prwin.document.writeln('<\/div><\/body><\/html>');
prwin.focus();
prwin.print();
}


но она работает как-то очень странно, такое ощущение, что новое окно не может получить доступ к объекту печати. Если вызывать window.print(); в основном окне, он прекрасно показывает диалог печати, а во вновь открытом показывает фигу. По нажатию на кнопку тоже ничего не происходит. Что не так. Возможно нужно задавать новому окну какие-то специальные свойства? (Система ubuntu, впрочем, на винде тоже не работает)

bes 29.08.2012 17:40

сделайте тестовый пример с возможностью запуска [html run] (jq-ссылка на оф. сайт)

Slavenin 29.08.2012 17:42

нашел решение... Как оказалось нужно было добавить
prwin.document.close();
и все встало на свои места


Часовой пояс GMT +3, время: 15:34.