Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать высоту документа загруженного в iframe? 
:(
    Опции темы
JaguarSmith
Дата 7.1.2006, 02:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 16.1.2005

Репутация: нет
Всего: 1



Привет!smile

Собственно сабж!
Я пробовал так:
Код

<iframe id="_if" name="_if" class="g"  width="100%" src="01.htm" frameborder=0 onload="if_onload();"></iframe>
<script language="javascript" >
<!--
var n = 1
var max=61
_if.onload=if_onload();

function if_onload()
{
_if.height = _if.contentWindow.height
};
//--> 
</script>

но это походу не работает...smile
Идея в том чтобы айфрейм подстраивался по высоте под докумет который в него загружается(чтоб не было прокрутки).
smile Как правильно это сделать?

Это сообщение отредактировал(а) JaguarSmith - 7.1.2006, 03:00
PM MAIL YIM   Вверх
Sardar
Дата 7.1.2006, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Нет, так работать не будет. Вообще у каждого браузера свои примочки с высотой, зависящей ещё от режима(standards compliance, quirks) в котором браузер работает. Рабочий пример:

http://www.quirksmode.org/viewport/compatibility.html

Таким же образом у нас в VFAQ'е высота фрейма с контентом подгоняеться, работает на ура.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
ezhikov
Дата 7.1.2006, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 7.1.2006

Репутация: 1
Всего: 1



Когда-то я делал так (в IE работало, в FF нет)

Код

<iframe src="news.htm" name="news" id="news" frameborder="0" scrolling="no" 
    width=450  style="height:expression(news.document.body.scrollHeight+20);"><a href="news.htm">Новости</a></iframe> 

PM MAIL   Вверх
JaguarSmith
Дата 8.1.2006, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 16.1.2005

Репутация: нет
Всего: 1



Спасибо ezhikov !
Но оно работает тока для первого документа загруженного в ифрейм...

У мну почемуто не получается поменять высоту фрейма "на лету"
я перепробовал:

Код

// _if - это мой ифрейм...

_if.height=y+50
_if.offsetHeight=y+50
_if.clientHeight =y+50
_if.style="height:"+y+50
_if.currentStyle="height:"+y+50


Но ничего не помогает smile

Зы. Sardar я честно пытался разобраться в том как работает ваш vfaq но для человека который ничего в этом не понимает - там слишком много скриптов smile
Добавлено @ 00:25
smile Урряя!!! Я допёр!!! Во как надо было:
Код

document.getElementById('_if').style.height=y+50


Это сообщение отредактировал(а) JaguarSmith - 8.1.2006, 00:15
PM MAIL YIM   Вверх
Sardar
Дата 9.1.2006, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(JaguarSmith @ 7.1.2006, 23:12 Найти цитируемый пост)
Sardar я честно пытался разобраться в том как работает ваш vfaq но для человека который ничего в этом не понимает - там слишком много скриптов

Возьми на quirksmode скрипт, что узнаёт высоту документа, уже готово, проверено, работает везде.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
JaguarSmith
Дата 9.1.2006, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 16.1.2005

Репутация: нет
Всего: 1



Да я сам уже написал (именно на основе quirksmode) работает в Опере Фаерфоксе и ИЕ:

Код

<iframe id="_if" name="_if" class="g"  width="100%" src="01.htm" frameborder=0 onload="if_onload();"></iframe>
<script language="javascript" >
<!--
function if_onload()
{
var x,y;
var test1 = _if.document.body.scrollHeight;
var test2 = _if.document.body.offsetHeight
if (test1 > test2) // all but Explorer Mac
{
    y = _if.document.body.scrollHeight;
}
else // Explorer Mac;
     //would also work in Explorer 6 Strict, Mozilla and Safari
{
    y = _if.document.body.offsetHeight;
}
 
document.getElementById('_if').style.height=y+50
};
// -->
<script>


Проверено на 60 страницах которые грузятся у меня в этот фрейм smile
Добавлено @ 20:38
В общем всем БОЛЬШОЕ СПАСИБО! smile
PM MAIL YIM   Вверх
S.A.P.
Дата 1.4.2006, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 8
Всего: 71



Поднимаю тему. Перепробовал все, перечисленные тут решения (в том числе и http://www.quirksmode.org/viewport/compatibility.html), высота документа определяется правильно, но в Опере и Сафари прокрутка остается. Я говорю не о полосе прокрутки, а прокрутке фрейма колесом или средней кнопкой. Кто - нибудь знает как это обойти?
PM MAIL   Вверх
12345c
Дата 1.4.2006, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



(По теме, но не в ответ S.A.P.: ) Обнаружена особенность опредеелния высоты документа в Опере (7.54), по которой пришлось отказаться в ней от dociment.body.scrollHeight . Когда в документе генерируется плавающий (absolute) слой, это свойство оказывается высотой этого слоя, а не высотой основного потока документа.
PM WWW   Вверх
Ciber SLasH
Дата 2.4.2006, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(S.A.P. @ 1.4.2006, 12:45 Найти цитируемый пост)
Я говорю не о полосе прокрутки, а прокрутке фрейма колесом или средней кнопкой.

А контент весь виден? или для полного просмотра нужно ещё крутить колесо?
PM   Вверх
S.A.P.
Дата 2.4.2006, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 8
Всего: 71



Контент виден весь. Можно конечно расширить фрейм пикселов на 50, но это будет безобразно. Ещё заметил, что если в документе, загружаемым в фрейм встречается много вложенных дивов, то скроллить даже Firefox начинает. Короче нужно просто запретить прокрутку жестко. Вешать scroll(0, 0) на onscroll фрейма - не годится.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0839 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.