Автоматическая высота IFrame

Готовые уроки IFrame + ВКонтакте API
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Автоматическая высота IFrame

Сообщение Александр »

Автоматическая высота IFrame

На форуме уже до этой статьи было полно информации о том как это реализовать, и при этом у кого-то всё равно не получалось.
Этот код протестирован и работает.

Код динамически вычисляет высоту iframe по содержимому.

Код: Выделить всё

<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>http://flapps.ru</title><script src="http://code.jquery.com/jquery-1.6.4.min.js"></script><script src="http://vkontakte.ru/js/api/xd_connection.js?2" type="text/javascript"></script><script type="text/javascript" charset="cp1251" >$(function() {    VK.init(function() {        setInterval(newSizeWindow, 100);        function newSizeWindow() {            VK.callMethod("resizeWindow",721,$('.wrapper').height());        }   });});</script></head><body><div class="wrapper">    <div style="height:1200px; background:#f00;">        <a href="http://flapps.ru">http://flapps.ru</a><br />    </div></div></body></html>
Весь контент вашей страницы должен находится в блоке .wrapper.


Дам совет: думайте прежде чем тупо копировать куда-то какой-то код. Всё можно сделать аккуратнее, тогда отладка и расширение функций вашего приложения в будущем будут проще.
Часто вижу, что у кого-то несколько раз используется конструкция

Код: Выделить всё

$(function() {    VK.init(function() {
Хотя всё можно было логически и аккуратно совместить в одной.
hahaha
Сообщения: 86
Зарегистрирован: 04 янв 2012, 14:52

Re: Автоматическая высота IFrame

Сообщение hahaha »

Александр
А вы после публикации этого урока не меняли что-нибудь в коде? Просто сразу после публикации урока я протестировал код все работало, потом через некоторое время обновил страницу с этим уроком и сматрю что что-то поменялось, протестировал код обновленый но он не работает, а старый рабочий уже удалил...???
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Автоматическая высота IFrame

Сообщение Александр »

hahaha
В коде не менял, описание перед и после кода изменил.
Напиши ссылку на приложение.
hahaha
Сообщения: 86
Зарегистрирован: 04 янв 2012, 14:52

Re: Автоматическая высота IFrame

Сообщение hahaha »

http://vkontakte.ru/app2273538

напишите любые коментарии и нажмите загрузить ещё, окно должно будет изменится с коментариями, но это не происходит...
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Автоматическая высота IFrame

Сообщение Александр »

Попробуй убрать строчку

Код: Выделить всё

<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
У тебя уже подключается jquery.

Код: Выделить всё

<script type="text/javascript" src="//yandex.st/jquery/1.4.2/jquery.min.js"></script>
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Автоматическая высота IFrame

Сообщение Александр »

Ну и код надо не тупо копирнуть в надежде что заработает, а всё таки подумать.
Как у тебя так получилось что в div просто запихнул код?

Код: Выделить всё

    <!doctype html>    <html>...    </html>
Не надо так делать. У тебя уже есть свои html, title, body...
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Автоматическая высота IFrame

Сообщение ukhov »

Если у вас не загрузились некоторые объекты (например, виджет комментариев), а высота уже сработала (неверно определилась), то может такой скрипт:

Код: Выделить всё

<html><head><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script><script src="http://vkontakte.ru/js/api/xd_connection.js?2" type="text/javascript"></script></head> <div id=page><body>TEST</body></div> <script type="text/javascript">function h_update_1() {VK.callMethod("resizeWindow", 721, $('#page').height()+Number(20));setTimeout(h_update_1, 1000);} setTimeout(h_update_1, 1000);</script></html>
hahaha
Сообщения: 86
Зарегистрирован: 04 янв 2012, 14:52

Re: Автоматическая высота IFrame

Сообщение hahaha »

Содержимое должно быть в TEST?
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Автоматическая высота IFrame

Сообщение ukhov »

hahaha писал(а):Содержимое должно быть в TEST?
TEST - это и есть содержимое. содержимое должно быть в <body>, который в <div id=page>
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Автоматическая высота IFrame

Сообщение bodnar »

ukhov писал(а):содержимое должно быть в <body>, который в <div id=page>
это в какой спецификации тег боди не является корневым тегом для всех остальных не метатегов?
Ответить