Вывод страницы на печать, версия для печати. JavaScript (По мотивам гениального решения подсмотренного на юкоз форуме)

Воистину “гениальное” решение простой задачи - вывода документа в печать. Такую муть я давно не видел .. Подозреваю, что какой-нить новичок мог случайно или с большого бодуна, написать подобную лажу.. Но не расстраивайтесь, все, на самом деле, гораздо

Вывод страницы на печать, версия для печати. JavaScript

» » Сообщение:

Как заметили, или не заметили, неважно, но много интересных идей я беру с одноименного форума, бывшего (печально это) Форума Технической Поддержки, а ныне Сообщество Юкоз.
Ну так вот, внимание (!) я увидел такое - закачаетесь...

Прилагаю скриншот:

Изображение

---

Воистину “гениальное” решение простой задачи - вывода документа в печать.

Такую муть я давно не видел ..
Подозреваю, что какой-нить новичок мог случайно или с большого бодуна, написать подобную лажу.. но, оказывается и члены группы “продвинутые(не просто усеры, или проверенные - продвинутые - почти модераторы) тоже блещут успехами в поисках абсурдных путей .. причем именуя их “самым простым решением”..

Для этого афтор предлагает создать файл, подключить к нему jQuery .. + счетчик опенстат, что подключится автоматически, вставить туда скрипт, определяющий реферер (причем через жопу), затем (!) внимание (!) делающий гет запрос, и не один (!!!), на страницу с которой открыли окно, с целью получить контент (кашмар..) и потом выводит полученное в блок, а после уже на печать...
Караул..
Я, честно, был под стулом..
--

Но не расстраивайтесь, все, на самом деле, гораздо проще.
Вот так:

Код: Выделить всё Развернуть
<script type="text/javascript">
function onPrint(){
var text=document.getElementById('message').innerHTML,title=document.getElementById('title').innerHTML,backlink=document.location.href;
var printwin=open('#','printwin','width=600,height=700');
printwin.document.open();
printwin.document.writeln('<html lang="ru"><head><title>'+title+'</title></head><body onload="print();close();">');
printwin.document.writeln('<h1>'+title+'</h1>');
printwin.document.writeln(text);
printwin.document.writeln('<a href="'+backlink+'"><i>'+backlink+'</i></a>');
printwin.document.writeln('</body></html>');
printwin.document.close();
};
</script>
<a href="javascript://" onclick="onPrint();return false;">[onPrint]</a>

Это минимум, остальное по вкусу )

Ну и конечно, пример:
Экземпле: demo.likbezz.ru/examples-html/demo-onprint.html
---

ps

vitaly576 писал(а):у меня есть инет-магаз, думал сделать конвертацию коммерческого предложения в pdf для удобства отправки клиенту...

Я уже хочу посмотреть на это чудо ))

pps
Для юкоз:

Код: Выделить всё Развернуть
<script type="text/javascript">
function onPrint(){
var text=document.getElementById('message').innerHTML,title=document.getElementById('title').innerHTML,backlink=document.location.href;
var printwin=open('#','printwin','width=600,height=700');
printwin.document.open();
printwin.document.writeln('<html lang="ru"><head><title'+'>'+title+'</title'+'></head'+'><body onload="print();close();">');
printwin.document.writeln('<h1>'+title+'</h1>');
printwin.document.writeln(text);
printwin.document.writeln('<a href="'+backlink+'"><i>'+backlink+'</i></a>');
printwin.document.writeln('</body></html'+'>');
printwin.document.close();
};
</script>

Переписываем титле в некую конструкцию:

Код: Выделить всё Развернуть
</title'+'>

ибо иначе на него вешаются системные стили, что ломают код ...

И, соответственно:

Код: Выделить всё Развернуть
</html'+'>

ибо есть на юкоз такое диво, как опенстат, что садится на хвост закрывающему html..

Вложения
Зарегистрируйтесь, чтобы скачать вложения.



Похожие темыКомментарии ПросмотрыПоследнее сообщение
0920JavaScript. Логические операторы и ...
Сообщение от: Admin
0667Колонки одинаковой высоты - лучшее ...
Сообщение от: Admin
21585Re: Закладки пользователя для сайта...
Сообщение от: Admin
151530Re: Рейтинг материалов +/- (плюс/ми...
Сообщение от: kinouser
11746Re: Как можно этот Snippet на Vanil...
Сообщение от: Admin