iFrame Автоматическое определение размеров - PullRequest
0 голосов
/ 26 июня 2010

Прежде, чем начнутся комментарии о "избиении мертвой лошади", позвольте мне уточнить, что я пытаюсь сделать, чтобы увидеть, может ли кто-нибудь мне помочь.

У меня есть родительское окно с iFrame в нем.Содержимое в iFrame загружается из отдельного домена, где, как мне кажется, начинаются мои проблемы, хотя так и должно быть.Когда страница первоначально загружается, у меня работает следующее:

    <script language="javascript" type="text/javascript">
    var reportFrame = document.getElementById('report');

    function resizeIframe() {
        var height = document.documentElement.clientHeight;

        height -= reportFrame.offsetTop;

        // not sure how to get this dynamically
        height -= 20; /* whatever you set your body bottom margin/padding to be */

        reportFrame.style.height = height + "px";

    }

    reportFrame.onload = resizeIframe;
    window.onresize = resizeIframe;

</script>

Это прекрасно работает.IFrame не имеет полос прокрутки и выглядит идеально, как я хочу.Проблема, с которой я сталкиваюсь, состоит в том, что у iFrame есть кнопка, которая вызывает постбэк в кадре.Мне нужно запустить этот скрипт, когда iFrame перезагружается, чтобы не показывать полосы прокрутки.Из-за того, что дочерняя страница находится в отдельном домене, я не могу вызвать функцию от нее к родителю (уверен, что именно здесь вступает в игру XSS), поэтому мне нужно найти другой способ, чтобы родитель узнал об этомнеобходимо запустить этот скрипт, потому что iFrame перезагружается сам.

Есть предложения?

1 Ответ

2 голосов
/ 26 июня 2010

Вы можете добавить таймер, который проверяет и изменяет размер через регулярные интервалы:

setInterval( "resizeIframe()", 1000 ); //check every second

[Редактировать - ссылки для скриптов изменения размера]

Извлечение http://geekswithblogs.net/rashid/archive/2007/01/13/103518.aspx и Изменение размера iframe на основе содержимого для сценариев изменения размера iframe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...