Почему функция печати не работает на Firefox - PullRequest
0 голосов
/ 13 января 2020

Bonjour à tous

Я пытаюсь сделать функцию печати в javascript / jquery. Мой код очень хорошо работает на chrome и Inte rnet Explorer. С другой стороны, это не работает вообще на Firefox.

У меня есть последнее обновление Firefox. Я тестировал различные решения, найденные повсюду в inte rnet (например, используя setTimeout, et c). Но это не работает, невозможно открыть всплывающее окно для печати на Firefox.

function printDiv() {
  let str = $('#printableTable').html();
  window.frames["print_frame"].document.body.innerHTML = str;
  window.frames["print_frame"].window.focus();
  window.frames["print_frame"].window.print();
}

$('.printDiv').click(function() {
  printDiv();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="printableTable">

  <h1 id="cnpePrint" style="text-align: center;"></h1>
  <h2 id="servicePrint" style="text-align: center;"></h2>

  <table style="border-collapse:collapse;border: 1px solid black;text-align:center;margin:auto;">
    <thead>
      <tr style="border: 1px solid black;">
        <th style="border: 1px solid black;width:100px;">Nom</th>
        <th style="border: 1px solid black;width:100px;">Prénom</th>
        <th style="border: 1px solid black;width:100px;">N° court</th>
      </tr>
    </thead>
    <tbody id="listPrint">

    </tbody>
  </table>
  <iframe class="print_frame" name="print_frame" width="0" height="0" frameborder="0" src="about:blank"></iframe>
</div>
<button class="printDiv">Print</button>

Я немного озадачен пониманием того, почему Firefox блокирует ожидаемое событие

Спасибо за помощь

1 Ответ

0 голосов
/ 14 января 2020

В итоге решением было сделать еще один скрипт. Работает только на Firefox и Explorer. Но не совсем хорошо на Chrome, однако, у моих клиентов нет Chrome, поэтому это не имеет значения.

function printDiv() {

    let str = $('#printableTable').html();
    let mywindow = window.open('', 'PRINT', 'height=400,width=600');
    mywindow.document.write(str);

    mywindow.document.close();
    mywindow.focus();

    mywindow.print();
    mywindow.close();

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