IE7 и IE8 функция печати JavaScript - PullRequest
0 голосов
/ 26 января 2012

У меня проблема с JavaScript, которую я не могу понять.Я взял фрагмент кода, который получил здесь и использую его на этой странице.

Идея состоит в том, что пользователи могут щелкнуть «Список печати»Кнопка и список копируется в div внутри скрытого iframe и распечатывается.На распечатанной странице содержится исходный HTML-код iframe с правильно вставленным списком.Однако в IE7 и 8 печатная страница является полной родительской страницей, а не iframe.Поведение в IE9, Chrome и FF правильное.

Я попытался отладить скрипт, но не смог понять, где он идет не так.

Вот код, который вызывает нажатие на кнопку Print List:

function printSection(id) {
  if (document.getElementById('print_frame').contentDocument){
    theIframe = document.getElementById('print_frame').contentDocument;
  }
  else {
    theIframe = document.frames['print_frame'].document;
  }
  var thePrinter = theIframe.getElementById('print_section');
  var theCopy = document.getElementById(id);
  thePrinter.innerHTML = theCopy.innerHTML;
  parent.print_frame.printPage();
}

А вот функция printPage ():

function printPage() {
  window.parent.print_frame.focus();
  window.print();
}

Буду признателен за любую помощь.Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.Большое спасибо.

1 Ответ

1 голос
/ 27 января 2012

Более простым решением может быть использование CSS-типов мультимедиа, чтобы скрыть содержимое страницы и показать скрытый элемент для печати. ​​

CSS

.print{display:none;}
@media print {
    .pagecontainer{display:none;}
    .print{display:block;}
}

HTML

<body>
    <div class="pagecontainer">
        Page content here
    </div>
    <div class="print">Only show this when printing</div>
</body>
...