Форум → Программирование → JavaScript → Как подогнать высоту ифрейма под содержимое?
Как подогнать высоту ифрейма под содержимое?
Страницы: ← Следующая страница →
-
10 декабря 2008 г. 15:38, спустя 2 минуты 46 секунд
<iframe onload="checksize(this);"
<script>
function schecksize(elem)
{
elem.style.height = elem.getElementsByTagName("body")[0].scrollHeight;
}
думаю нечто такое копать надо:)Сапожник без сапог -
10 декабря 2008 г. 20:45, спустя 5 часов 6 минут 24 секунды
думаю нечто такое копать надо:)
Не прошло
На:<iframe onload="checksize(this);"
IE говорит - "Предполагается наличие объекта"
Я могу предположить что у тега ифрейм нет свойства onload…. -
10 декабря 2008 г. 20:59, спустя 14 минут 40 секунд
я предполагаю что ие не понимает слово this для ифрейма чтоли(Сапожник без сапог -
10 декабря 2008 г. 22:19, спустя 1 час 19 минут 43 секунды
Всем кто захочет наступить вслед за мной на эти грабли посвящается чудное решение от разработчиков джумлы:
<script language="javascript" type="text/javascript">
function iFrameHeight() {
var h = 0;
if ( !document.all ) {
h = document.getElementById('blockrandom').contentDocument.height;
document.getElementById('blockrandom').style.height = h + 60 + 'px';
} else if( document.all ) {
h = document.frames('blockrandom').document.body.scrollHeight;
document.all.blockrandom.style.height = h + 20 + 'px';
}
}
</script>
<iframe
id="blockrandom"
name="iframe"
src=НашаСцылко
width="100%"
onload="iFrameHeight()"
scrolling="no"
align="top"
frameborder="0"
>
Работает во всех браузерах(включая хром и сафари) кроме Оперы…
Тому кто придумает как подружить это с музыкальным браузером будет вечный респект :) -
10 декабря 2008 г. 22:24, спустя 5 минут 22 секунды
интересно чем это отличается от моего решения :-D
Всем кто захочет наступить вслед за мной на эти грабли посвящается чудное решение от разработчиков джумлы:
<script language="javascript" type="text/javascript">
function iFrameHeight() {
var h = 0;
if ( !document.all ) {
h = document.getElementById('blockrandom').contentDocument.height;
document.getElementById('blockrandom').style.height = h + 60 + 'px';
} else if( document.all ) {
h = document.frames('blockrandom').document.body.scrollHeight;
document.all.blockrandom.style.height = h + 20 + 'px';
}
}
</script>
<iframe
id="blockrandom"
name="iframe"
src=НашаСцылко
width="100%"
onload="iFrameHeight()"
scrolling="no"
align="top"
frameborder="0"
>Сапожник без сапог -
10 декабря 2008 г. 22:27, спустя 2 минуты 46 секунд
интересно чем это отличается от моего решения :-D
Честно? Низнаю…. Но это работает… А Ваш вариант не проходил…. Может я чегой-то криво скопипастил… Низнаю
Насчет оперы есть идеи? -
10 декабря 2008 г. 22:29, спустя 1 минуту 41 секунду
может и криво, ибо я только недоделанный пример написал, где надо было теги проставить да указать че нить по мелочи :) короче "натолкнул на мысль" (с). у жумлы решение точно такое же.
интересно чем это отличается от моего решения :-D
Честно? Низнаю…. Но это работает… А Ваш вариант не проходил…. Может я чегой-то криво скопипастил… Низнаю
Насчет оперы есть идеи?Сапожник без сапог -
10 декабря 2008 г. 22:35, спустя 6 минут 15 секунд
у жумлы решение точно такое же.
получается, что те кто юзает динамические враперы в джумле 1.5 попадают на грабли с оперой 9.6х?
… проверил …точно попадалово -
11 декабря 2008 г. 0:47, спустя 2 часа 12 минут 2 секунды
опера это вообще попадалово. нелюблю этот браузер со времен когда их доля рынка была ~ 0
у жумлы решение точно такое же.
получается, что те кто юзает динамические враперы в джумле 1.5 попадают на грабли с оперой 9.6х?
… проверил …точно попадаловоСапожник без сапог -
13 августа 2009 г. 14:24, спустя 245 дней 12 часов 37 минут
Работает во всех браузерах(включая хром и сафари) кроме Оперы…
Тому кто придумает как подружить это с музыкальным браузером будет вечный респект :)
А вот и решение, ребяточки ;)
Вместо
<script language="javascript" type="text/javascript">
function iFrameHeight() {
var h = 0;
if ( !document.all ) {
h = document.getElementById('blockrandom').contentDocument.height;
document.getElementById('blockrandom').style.height = h + 60 + 'px';
} else if( document.all ) {
h = document.frames('blockrandom').document.body.scrollHeight;
document.all.blockrandom.style.height = h + 20 + 'px';
}
}
</script>
Пишем
<script language="javascript" type="text/javascript">
function iFrameHeightX( iFrameId ) {
var h = 0;
if ( document.all || document.getElementById ) {
h = document.frames(iFrameId).document.body.scrollHeight;
document.all[iFrameId].style.height = h + 'px';
}
}
</script>
Теперь работает и EI и Opera. На других не проверял. И ещё: этот код из джумлы 1.0, а написанный выше из 1.5. Надеюсь кому-нить это поможет. -
13 августа 2009 г. 15:01, спустя 37 минут 12 секунд
Теперь работает и EI и Opera. На других не проверял. И ещё: этот код из джумлы 1.0, а написанный выше из 1.5. Надеюсь кому-нить это поможет.
Дуд прав - Джумла-разработчики таки долбоёбы. Нахера было изменять код, который работал нормально везде (как указано постом выше) и заменять на полурабочий!? -
13 августа 2009 г. 15:08, спустя 6 минут 19 секунд
Дуд прав - Джумла-разработчики таки долбоёбы. Нахера было
использовать document.all и document.frames -
13 августа 2009 г. 15:11, спустя 3 минуты 43 секунды
я бы остановился тутДуд прав - Джумла-разработчики таки долбоёбы
(с) дудСапожник без сапог -
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!