Высота фрейма и высота загружаемого файла
Приветствую!
Не знаю, как это решить, может Javascript поможет. Запарка такая. Выводится содержимое страницы в 2 горизонтальных фрейма. Нижний фрейм высотой 60пкс, с этим нет проблемм. А верхний должен быть по высоте равным высоте загружаемого в него файла. Этот файл меняет свою высоту в зовисимоти от наполнения. Вопрос. Как сделать, чтобы верхний врейм вытягивался по высоте загружаемого в него файла? Для инфо. Есть сайт на верстку, на котором должна проигрываться музыка флэшлеером и при переходе со страницы на страницу музыка не должна прерываться. Именно с этой целью решилось использовать фреймы, хотя имею к ним хроническую антипатию. Может есть другое решение или возможно ли это организовать с помошью JavaScript (в нём я изрядно слаб)? Help! SOS! Помогите! |
Цитата:
Проигрыш от фрэймов будет гораздо больше выигрыша от неприрываемой музыки. http://javascript.ru/forum/misc/1166...j-chastyu.html |
Цитата:
А теперь по сути. Как мне этот код привинтить к моему примеру. Вот к этим фреймам. Я понимаю ,что вторая функция вычисляет высоту, а первая функция должна прописываться во фрейме где-то. <frameset rows="*,60" frameborder="NO" border="0" framespacing="0"> <frame src="frame.htm" name="mainFrame" scrolling="NO"> <frame src="frame1.htm" name="bottomFrame" scrolling="NO" noresize> </frameset> Какую строчку вписать нужно, чтобы заработало? Я, конечно, сам сейчас копать буду, так как лёгких путей в таких случаях не ищу, да и не сторонник халявы, но если кому не жаль пары минут, то отпишитесь пожалуйста с примером. Спасибо. |
findman,
А что вы хотите получить в итоге? Если вы даже зададите вместо звездочки (или height) фрейма точное число пикселов - прокрутка страницы не появится, только фрейма. |
Сделал-нашёл другой вариант :) Использовал iframes, вместо frameset и другой скрипт. В IE, Mozilla и Opera работает отлично. Спасибо всем!
|
Вот наткнулся на ещё один подводный камень. Вот скрипт, который я использовал для решения вышеописанной проблеммы:
function autoIframe(frameId){ try{ frame = document.getElementById(frameId); innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document; objToResize = (frame.style) ? frame.style : frame; objToResize.height = innerDoc.body.scrollHeight; } catch(err){ window.status = err.message; } } Таким образом он вставляется во фрейм: <iframe id="tree" name="tree" src="frame.htm" align="center" width="100%" scrolling="no" frameborder="0" marginheight="0" marginwidth="0" onload="if (window.parent && window.parent.autoIframe) {window.parent.autoIframe('tree');}"> Проблемма в том, что при загрузке во фрейм другого документа, который по высоте меньше предыдущего, не меняется высота фрейма и остаётся чёрная полоса (у меня бэкграунд чёрный). Работает нормально (уменьшает высоту) только в IE. Mozilla, Opera оставляют (не уменьшают) полосу от прошлого документа. Можно ли уменьшать высоту фрейма автоматически, после того, как в нём был загружен документ большего размера по высоте? |
Часовой пояс GMT +3, время: 19:43. |