У меня есть документ, который появляется на сайте в модульном блоке jQuery. Документ имеет кнопку печати в конце, которая просто печатает документ во всплывающем окне.Ошибка Печать через iframe - «Undefined» Ошибка при использовании Ctrl + P
Я хотел напечатать документ, только внутри iframe, с помощью Ctrl + P. Это потребовало предотвращения поведения по умолчанию для печати всей страницы, включая фон.
Это JQuery код для печати:
$(document).keydown(function(event) {
if (((event.ctrlKey == true) || (event.metaKey == true)) && (event.which == '80')) {
event.preventDefault();
printAssessment();
}
});
function printAssessment() {
if ($('#frameContainer').length) {
$('#lightboxFrame')[0].contentWindow.print();
}
}
HTML, для моей страницы с IFRAME находится ниже:
<div id="frameContainer">
<iframe id="lightboxFrame" width="950px" scrolling="auto" height="500px">
<!DOCTYPE html>
<html>
<head>
<body> (Whole Document in a Div) </body>
...
Теперь проблема в том, что, когда я открываю свою модальность и нажмите Ctrl + P, он печатает, если я не прокручиваю модальную форму, как я ее хочу. Но если я перечисляю модальный, а затем нажмите Ctrl + P, это дает мне следующую ошибку:
Uncaught TypeError: Cannot read property 'contentWindow' of undefined
Как ни странно, несмотря на то, когда IFrame открыта, она по-прежнему считает, что не определено, но только тогда, когда я прокручиваю модальный IFrame. Если я просто открываю модальный и нажимаю Ctrl + P, он отлично печатает.
Какое событие имеет отношение к 'contentWindow'? – RoToRa