Как напечатать innerText элемента <div>в Angular 7, который работает в мобильных браузерах? - PullRequest
0 голосов
/ 12 декабря 2018

Я работал над личным проектом, где я хотел, чтобы у меня была кнопка для печати содержимого элемента <div>.На рабочем столе все работало, но каким-то образом он не может печатать на мобильных устройствах с текстом «Произошла ошибка при печати страницы. Повторите попытку.» При проверке Chrome Developer Tools не было сообщений об ошибках или предупрежденияхрабочий стол.Вот код, который я использую:

Часть App.component.html:

  <div id="1">
      <h3 class="title">Some Title</h3>
      <p class="subtitle">Some Text</p>
      <a id="1-print">Print</a>
  </div>

Часть App.component.ts:

  const printQuote = (id) => {
      const content = document.getElementById(id).innerHTML;
      const printWindow = window.open('', 'Print', 'height=600,width=800');

      printWindow.document.write('<html><head><title>Print</title>');
      printWindow.document.write('</head><body>');
      printWindow.document.write('<h1>QuotesWorld</h1>');
      printWindow.document.write(content);
      printWindow.document.write('</body></html>');

      printWindow.document.close();
      printWindow.focus();
      printWindow.print();
      printWindow.close();
  };

  const printArr = ['1-print', '2-print', '3-print', '4-print', '5-print',
                    '6-print', '7-print', '8-print', '9-print', '10-print',
                    '11-print', '12-print', '13-print', '14-print', '15-print',
                    '16-print', '17-print', '18-print', '19-print', '20-print',
                    ... '55-print', '56-print'];

  const quotArr = [];

  for (let i = 0; i < 56; i++) {
      quotArr[i] = i + 1;
      document.getElementById(printArr[i]).addEventListener('click', () => {
          printQuote(quotArr[i]); 
      });
  }

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

1 Ответ

0 голосов
/ 12 декабря 2018

Я не использовал эти функции, но я думаю, что проблема заключается в ширине и высоте, которые вы указали здесь для размера окна:

const printWindow = window.open('', 'Print', 'height=600,width=800');

попробуйте создать меньшее окно для мобильных устройств.

...