iframe-resizer не может нормально работать на мобильном устройстве

Я использую следующую библиотеку http://davidjbradshaw.github.io/iframe-resizer/ которая позволяет изменять размер межфреймовых фреймов после исходной страницы.

Хотя я столкнулся со следующей проблемой на мобильном устройстве, которую я не смог решить:

При первой загрузке страницы высота iFrame является правильной (вся загруженная страница видна в iframe). Но при нажатии на ссылку, высота которой меньше предыдущей страницы, функция "resizedCallback" не может быть вызвана. Таким образом, текущая высота страницы остается такой же, как и на предыдущей странице. Хотя высота текущей страницы слишком мала по сравнению с предыдущей страницей. Это возникает только на мобильном телефоне.

1 ответ

Это можно решить, вызвав родительский метод изменения размера со второй страницы.

Например, ваш iFrame выглядит так:

<iframe id="paymentForm" src="/payments/onlineDetailsForm" width="100%"
    height="400px" onload='resizeIframeWithoutScrolling(this);'></iframe>

И методы изменения размера:

<script type="text/javascript">

function resizeIframeWithoutScrolling() {
    document.getElementById("paymentForm").style.height = (parseInt(document
            .getElementById("paymentForm").contentWindow.document.body.scrollHeight) + 1)
            + "px";
}


function AdjustIframeHeight(i) { document.getElementById("paymentForm").style.height = parseInt(i) + "px"; }

Теперь на второй странице просто добавьте следующий скрипт:

<script type="text/javascript">
parent.resizeIframeWithoutScrolling(document.getElementById("secondPageId").scrollHeight);

Этот скрипт будет корректировать размер автоматически.

Другие вопросы по тегам