Автоматическая высота iframe не работает при изменении страницы в IE - PullRequest
3 голосов
/ 14 апреля 2010

У меня есть iframe на странице со следующим скриптом авто-высоты.

function autoHeight(e)
{
    if ( e.contentDocument ) {
        e.height = e.contentDocument.body.offsetHeight + 35;
    }
    else {
        e.height = e.contentWindow.document.body.scrollHeight + 35;
    }
}

document.domain = "example.co.uk";
var ifr = document.getElementById('housingdata');

ifr.onload = function() {
    autoHeight(ifr);
}

Размер iframe корректно изменяется при загрузке внешней страницы, но когда я перехожу на новую страницу в iframe, появляются полосы прокрутки, и размер страницы не изменяется в Internet Explorer. В других браузерах размер iframe изменяется, потому что событие onload срабатывает каждый раз.

Я использую IE8, но внешняя страница устанавливает режим совместимости IE7. Есть ли обходной путь для IE?

Ответы [ 2 ]

1 голос
/ 23 апреля 2010

Я нашел другой способ реализовать это. Я удалил приведенный выше скрипт и поместил скрипт ниже (с функцией autoHeight) на самой странице iframe:

window.onload = function() {
    var ifr = window.parent.document.getElementById('housingdata');
    autoHeight(ifr);
}

Теперь при каждой загрузке страницы размер фрейма изменяется.

0 голосов
/ 14 апреля 2010

Вы пытались записать onload="autoHeight(this)" прямо в ваш iframe -тэг (это уродливо, но, возможно, это помогает ... давным-давно, я хотел сделать то же самое, что и вы, и я сделал это таким образом) ? если это не поможет, я буду искать свой старый скрипт, когда буду дома ... не могу вспомнить, что я сделал по-другому

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