Как показать другой div при печати с использованием Javascript

0

JavaScript

<script type="text/javascript">
        function printDiv() {

 var printContent1 = document.getElementById('divMail1');
 var printContent2 = document.getElementById('divMail2');

            var newWin = window.open('', 'PrintWindow', 'width=800,height=530,top=10,left=100,scrollbars=1,resizable=yes');
            newWin.document.open();
            newWin.document.write('<html/><body  onload="window.print()">' + printContent1.innerHTML + '</body></html>');
            newWin.document.close();
        }

</script>

HTML

  <div id="divMail1">
        <div>
            <img src="image1.jpg"/>
        </div>
     <div>
            <img src="image2.jpg"/>
        </div>


    <div id="divMail2">
        <div>
            <img src="image3.jpg"/>
        </div>
     <div>
            <img src="image4.jpg"/>
        </div>
    </div>
<input type="button" value="Print" onclick="printDiv()"/>

Привет, я хочу показать один div (divMail1) в предварительном просмотре и распечатать другой div (divMail2). Является ли это возможным. пожалуйста помогите.

  • 0
    Вы не можете сделать это. Предварительный просмотр печати показывает именно ту страницу, которая была отправлена на принтер. (Если под «предварительным просмотром печати» вы не имеете в виду то, что отображается в браузере, это другое дело.)
Теги:

3 ответа

2

Делайте это только с помощью CSS

<head>
        <style type="text/css">

        #printable { display: none; }

        @media print
        {
            #non-printable { display: none; }
            #printable { display: block; }
        }
        </style>
    </head>
    <body>
        <div id="non-printable">
            Your normal page contents
        </div>

        <div id="printable">
            Printer version
        </div>
    </body>
1

Вместо использования JavaScript вы можете использовать print.css, добавив media="print". Итак, в вашем основном CSS вам нужно добавить следующее:

.print-only {display: none;}
.do-not-print {display: block;}

И в print.css:

.print-only {display: block;}
.do-not-print {display: none;}

В вашем случае код в вашем основном CSS:

#divMail1 {display: block;}
#divMail2 {display: none;}

И в print.css:

#divMail1 {display: none;}
#divMail2 {display: block;}
  • 0
    Если есть JDfiddle, было бы здорово. Извините за глупость.
0

использовать css вместо этого

#divMail1 {
  display: block;
}

#divMail2 {
  display: none;
}
@media print {
  #divMail1 {
    display: none;
  }

  #divMail2 {
    display: block;
  }
}
  • 0
    Это возможно без CSS?
  • 0
    для принтера? ... вы можете создать другую страницу без лишних элементов и просто нажать кнопку «печать»

Ещё вопросы

Сообщество Overcoder
Наверх
Меню