Javascript печать HTML страницы
При создании очередного сайта столкнулся с задачей печати HTML страницы. На странице была информация о проекте (коттеджи) и нужно было по клику распечатать. Для решения идеально подходит Javascript. И так создаем такую структуру:
<div id="print-content">
Содержимое для печати
</div>
Обязательно задаем идентификатор. Содержмиое может быть любым. Далее напишем небольшую функцию для печати web страницы.
<script language="javascript">
function CallPrint(strid)
{
var prtContent = document.getElementById(strid);
var prtCSS = '<link rel="stylesheet" href="/templates/css/template.css" type="text/css" />';
var WinPrint = window.open('','','left=50,top=50,width=800,height=640,toolbar=0,scrollbars=1,status=0');
WinPrint.document.write('<div id="print" class="contentpane">');
WinPrint.document.write(prtCSS);
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.write('</div>');
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
prtContent.innerHTML=strOldOne;
}
</script>
И не много поясню. Эта функция откроет новое popup окно вызовет функцию печати. После печати автоматически закроет окно. В новое окно передается содержимое блока print-content. Также вызываем стили CSS, чтобы отформатировать содержимое. И конечно надо вызывать функцию. Делаем через Javascript функцию onClick:
<a onClick="javascript:CallPrint('print-content');" title="Распечатать проект">Распечатать</a>
Ну вот и все. Просто и с душой.
Материалы
Комментарии
...
WinPrint.document.write('');
....
на
....
WinPrint.document.write('');
.... Ответить
Кстати, на Opera тоже пашет и совершенно без глюков. Ответить