У меня есть скрипт php, который генерирует документ для печати.Я пытаюсь вставить этот скрипт в модал начальной загрузки 4 с шириной и высотой 100%, чтобы клиент мог проверить содержимое и затем распечатать его.
<button type="button" id="print_modal" class="btn btn-primary" data-toggle="modal" data-target="#printmodal">Result</button>
<div class="modal fade" id="printmodal">
<div class="modal-dialog" style="max-width:210mm !important">
<div class="modal-content">
<div class="modal-header">
<button class="btn btn-primary ml-1" id="print_btn">Tisk</button>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body text-left" id="print_content">
<!-- IFRAME HERE -->
</div>
</div>
</div>
</div>
Сначала я поместил iframe в модал,когда заполняется (из соображений производительности - иногда это действительно длинный документ) - это работает
$('#print_modal').click(function () {
$('#print_content').html('<iframe src="./index.php?print" frameborder="0" scrolling="no" id="print_frame"></iframe>');
});
Чем нужно установить высоту 100% для элемента iframe.Проблема в том, что следующий скрипт jquery возвращает 0 высоту.Вероятно, потому что по умолчанию скрыт в модальном.
$("#print_frame").on("load", function () {
$(this).height($(this).contents().find("html").height());
});
Мне нужно что-то вроде тайм-аута, чтобы проверить высоту iframe после его заполнения, но я не знаю как.
Не работает:
Использовать параметр onload для сгенерированного iframe: (return 0px - модальный FadeIn, вероятно, медленнее, чем iframe append ...)
<iframe src="./index.php?print" onload="ifrhgh()">
function ifrhgh(){
var iframehght = $("#print_frame").contents().height();
}