Печать контента с сервера получаемого по АЯКС
Вопрос в том как полученные данные с сервера сразу вывести на печать без отображения нового окна?
Что бы сразу появлялся диалог печати? Вот код:
var win = window.open('about:blank','movement','height=400,width=600,resizable=1,scrollbars=1, menubar=0');
win.document.open();
win.document.write("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xmlns='http://www.w3.org/1999/xhtml'><head><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' /><title>Printing the Grid</title><link rel='stylesheet' type='text/css' href='css/printstyle.css'/></head><body>
Что печатать, когда нечего печатать?
</body></html>");
win.print();
Я его вызываю когда пришли данные с сервера, но мне не нужно их показывать а сразу показать дилог печати... Возможно такое? |
Загрузить их в скрытый iframe и его напечатать.
|
Используйте тэг мета с атрибутом media, и ЦССом выводить только тот блок в который был загружен аяксовый контент
|
Цитата:
Не работает..
var iframe = Ext.get('forprint');
iframe.print();
Или использовать onLoad у frame и там вызывать window.print() ? |
Проще в самом iframe вызвать window.print() по onload.
|
Цитата:
<iframe id="forprint" name="forprint" src="about:blank" style="display:none; width:400px; height:500px; border: 0px onload="window.print();" ></iframe> Не срабатывает... Этот код
window.frames['forprint'].document.write('Печатает?!');
window.frames['forprint'].focus();
window.frames['forprint'].print();
Вроде заработал, но после нескольких вызовов диалог печати вызывает а на печати ничего нет :( Как распечатать необходимый контент а не всё окно??? |
Цитата:
Можно поподробнее? Как именно: "ЦССом выводить только тот блок в который был загружен аяксовый контент"? |
В самом iframe значит в странице, которая загружается в iframe.
|
Цитата:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
@media screen {
/* Стиль для отображения в браузере */
#load_data {
display: none;
}
}
@media print {
/* Стиль для печати */
#content {
display: none;
}
}
</style>
<script>
</script>
</head>
<body>
<div id='content'>
<p>На экране.</p>
</div>
<div id='load_data'>
<p>На печать.</p>
</div>
</body>
</html>
|
Цитата:
Как очистить данные в iFrame после печати? |
| Часовой пояс GMT +3, время: 01:12. |