Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не могу разобраться с печатью определенного дива (https://javascript.ru/forum/misc/85221-ne-mogu-razobratsya-s-pechatyu-opredelennogo-diva.html)

Aidec 18.05.2023 13:27

Не могу разобраться с печатью определенного дива
 
Есть див и нужно все содержимое его печатать
<div id="print-content">
<img class="str1" src="media/1.svg" alt="" />
</div>


А вот скрипт
<script>
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>

И кнопка печати

<div class="print">
<a href="#" onClick="javascript:CallPrint('print-content');" title="Распечатать проект"><img src="media/print.svg"></a>
</div>



Проблема в том что при нажатии на кнопку выводится окно для печати, но в нем пусто.
Помогите пожалуйста разобраться с этой проблемой

Aidec 18.05.2023 14:00

Решил проблему
Поменял.
WinPrint.print();
на 
WinPrint.onload = () => {
WinPrint.print(); 
}

И удалил
WinPrint.close();
  prtContent.innerHTML=strOldOne;

Но теперь не знаю как сделать так что бы это окно закрывалось когда я делаю печать

рони 18.05.2023 14:06

Aidec,
а так?
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.open();
  WinPrint.document.write(prtCSS);
  WinPrint.document.write('<div id="print" class="contentpane">');
  WinPrint.document.write(prtContent.innerHTML);
  WinPrint.document.write('</div>');
  WinPrint.document.close();
  WinPrint.print();
  WinPrint.close();
}

Aidec 18.05.2023 15:08

Нет не получилось.
Ну это ладно я смерился.
Сейчас у меня другая проблема, когда открывается окно для печати то все поля ввода текста пустые.
У меня в диве присутствуют инпуты с полем ввода и выбора, получается когда я заполню всю форму на страничке, а потом нажимаю кнопку печать то у меня вылазиет окно с пустыми полями.
Есть идеи как это решить?

рони 18.05.2023 15:27

Aidec,
при вводе, данные выводить в отдельный блок и этот блок распечатывать.

рони 18.05.2023 15:36

Цитата:

Сообщение от Aidec
нажимаю кнопку печать то у меня вылазиет окно с пустыми полями.

<input name="" oninput="this.setAttribute('value', this.value)" >


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