Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Заставить работать window.print(); (https://javascript.ru/forum/misc/25496-zastavit-rabotat-window-print-%3B.html)

Сергей85 07.02.2012 13:37

Заставить работать window.print();
 
Всем привет!
Сразу хочу сказать, что я не программист, и почти не имею опыта на javascript. Поэтому обращаюсь сюда за помощью.
-------------
Реализован механизм "Версия для печати" с помощью готового скрипта, который не сложно найти в нете (скрипт формирует новое окно без лишних стилей, в которое вставляет контейнер с нужным содержимым и есть ссылки распечатать и закрыть):
Это пишется в <Head>

function atoprint(aId) {
    var atext = document.getElementById(aId).innerHTML;
    var captext = window.document.title;
    var alink = window.document.location;
    var prwin = open('');
    prwin.document.open();
    prwin.document.writeln('<html><head><title>Версия для печати<\/title><\/head><body text="#000000" bgcolor="#FFFFFF"><div onselectstart="return false;" oncopy="return false;">');
    prwin.document.writeln('<div style="margin-bottom:5px;">[B]<a href="javascript://" onclick="window.print();">Печать<\/a>[/B] • <a href="javascript://" onclick="window.close();">Закрыть окно<\/a><\/div><hr>');
    prwin.document.writeln('<h1>'+captext+'<\/h1>');
    prwin.document.writeln(atext);
    prwin.document.writeln('<hr>');
    prwin.document.writeln('<div style="font-size:8pt;">Страница материала: '+alink+'<\/div>'); 
    prwin.document.writeln('<div style="margin-top:5px;">[B]<a href="javascript://" onclick="window.print();">Печать<\/a>[/B] • <a href="javascript://" onclick="window.close();">Закрыть окно<\/a><\/div>');
    prwin.document.writeln('<\/div><\/body><\/html>');
  }


Теперь нужно пометить ту часть материала, которую выведем на печать. Это сделаем при помощи DIV:

<div id="MessForPrint">Тут текст сообщения для печати...</div>

Теперь сделаем ссылку, по которой будем открывать окно с облегченным текстом.

<a href="javascript://" onclick="atoprint('MessForPrint');">Версия для печати</a>

То что я выделил жирным работает в Chrom и FireFox но не работает в IE и Opera. В этом и состоит проблема.
Вот сделал наглядную работу скрипта для примера: mr-bin-1.narod.ru/demi.html

Octane 07.02.2012 13:43

document.close() добавьте

Сергей85 07.02.2012 13:50

Добавил в конце скрипта prwin.document.close(); и все теперь работает.
Octane, огромное Вам спасибо! :)


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