печать div с textarea вкл.пользовательский ввод с использованием JS - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть этот простой скрипт, который печатает часть веб-страницы.Тем не менее, он не печатает пользовательский ввод.

Моя цель - распечатать только форму и пользовательский ввод;не остальная часть веб-страницы.

Я не хочу использовать CSS;просто js / jQuery и html.

Мой вопрос: как я могу печатать различные элементы ввода формы, включая пользовательский ввод?

HTML:

<div id="print-content">
        <textarea>Print User Input</textarea>
        <input type="button" onclick="printDiv('print-content')" value="print a div!"/>
</div>

js:

<script type="text/javascript">
    function printDiv(divName) {
        var printContents = document.getElementById(divName).innerHTML;
        var originalContents = document.body.innerHTML;
        document.body.innerHTML = printContents;
        window.print();
        document.body.innerHTML = originalContents;
    }
</script>

Ответы [ 3 ]

0 голосов
/ 21 ноября 2018

Попробуйте удалить эту строку document.body.innerHTML = printContents;

function printDiv(divName) {
  var printContents = document.getElementById(divName).innerHTML;
  var originalContents = document.body.innerHTML;
  window.print();
}
<div id="print-content">
  <form>
    <textarea>Print User Input</textarea>
    <input type="button" onclick="printDiv('print-content')" value="print a div!" />
  </form>
</div>
0 голосов
/ 21 ноября 2018

Проверено только на хроме.

 function printDiv(divName) {

    var printContents = document.getElementById(divName).cloneNode(true);

    w = window.open();
    w.document.body.appendChild(printContents);
    w.print();
    w.close();
    return true;
}
0 голосов
/ 21 ноября 2018

Значение current для ввода не представлено в HTML (только значение default ), поэтому оно не будет отображаться в innerHTML.

Вам нужно было бы перебрать все входы на исходной странице, прочитать их свойства value, а затем скопировать значения в новые входы на новой странице.


Возможно, вам лучше использовать CSS и @media print, чтобы скрыть элементы, которые вы не хотите печатать, вместо того, чтобы переписывать документ с помощью innerHTML несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...