Авторазмер IFrame - PullRequest
       12

Авторазмер IFrame

0 голосов
/ 27 сентября 2010

Мне действительно нужна чья-то помощь в этом> У меня внутри IFrame есть небольшое изображение, которое при нажатии на него отображает другое изображение и немного скользит вниз. Как я могу заставить IFrame автоматически увеличиваться или уменьшаться в зависимости от его содержимого?

Большое спасибо!

* редактировать После более подробного изучения я обнаружил немало примеров, в которых утверждается (я их не проверял) делать то, что мне нужно, но ТОЛЬКО после обновления страницы. Что я не могу сделать.

Ответы [ 2 ]

1 голос
/ 28 сентября 2010

Вы можете изменить размер вашего iFrame с помощью метода JavaScript . Затем вы связываете этот метод с событием OnLoad вашего iFrame.

Не было никакого смысла переписывать код, поскольку он короткий и к тому, что в приведенной выше ссылке. Один человек сказал, что он не работает в Opera, но попробуйте и посмотрите, подходит ли он вашим потребностям.

0 голосов
/ 28 декабря 2011

Я думаю, что вы можете автоматически изменить размер своего iframe без iframes при событии загрузки или чего-либо из этого.Но я тестировал только в ie7 +, и он работает в 3.6+ Firefox и Chrome.

Вот что я придумал.

var $app = $(window[options.name]),
            $appContainer = $("#app-runner");

        window.setInterval(function() {
            var frameEl = $app[0].frameElement,
                frameDoc = 0,
                height = 0;

            if (frameEl.contentDocument !== undefined) {
                frameDoc = frameEl.contentDocument,
                height = frameDoc.height || frameDoc.body.offsetHeight;
            } else if (frameEl.document !== undefined && frameEl.document.documentElement !== undefined) {
                frameDoc = frameEl.document.documentElement,
                height = frameDoc.offsetHeight;
            }
            $appContainer.css("height", height);
        }, 500);

Очевидно, что есть лучшие варианты для лучшей производительности.Но это то, что я придумал.HTML прост.Просто добавьте iframe в div с id === "app-runner".Фрейм должен иметь высоту = 100%.Таким образом, полосы прокрутки не нужны, приложение просто автоматически изменяет размеры каждые 500 мс (лучшие и более быстрые результаты = требуется больше процессорного времени)

...