Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.09.2008, 01:03
Новичок на форуме
Отправить личное сообщение для findman Посмотреть профиль Найти все сообщения от findman
 
Регистрация: 14.09.2008
Сообщений: 4

Высота фрейма и высота загружаемого файла
Приветствую!

Не знаю, как это решить, может Javascript поможет.

Запарка такая. Выводится содержимое страницы в 2 горизонтальных фрейма. Нижний фрейм высотой 60пкс, с этим нет проблемм. А верхний должен быть по высоте равным высоте загружаемого в него файла. Этот файл меняет свою высоту в зовисимоти от наполнения.

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

Для инфо. Есть сайт на верстку, на котором должна проигрываться музыка флэшлеером и при переходе со страницы на страницу музыка не должна прерываться. Именно с этой целью решилось использовать фреймы, хотя имею к ним хроническую антипатию. Может есть другое решение или возможно ли это организовать с помошью JavaScript (в нём я изрядно слаб)?

Help! SOS! Помогите!
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2008, 09:23
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от findman
хотя имею к ним хроническую антипатию
А я вот имею хроническую антипатию к фоновой музыке на сайтах.

Проигрыш от фрэймов будет гораздо больше выигрыша от неприрываемой музыки.
Высота всей страницы(вместе с невидимой частью)
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2008, 15:34
Новичок на форуме
Отправить личное сообщение для findman Посмотреть профиль Найти все сообщения от findman
 
Регистрация: 14.09.2008
Сообщений: 4

Сообщение от Kolyaj
А я вот имею хроническую антипатию к фоновой музыке на сайтах.
Эта антипатия взаимна, просто не стал её писать в воём предыдущем посте, чтобы не усугублять всё своими антипатиями. Но, что ж поделаешь, если клиентура такова.

А теперь по сути. Как мне этот код привинтить к моему примеру. Вот к этим фреймам. Я понимаю ,что вторая функция вычисляет высоту, а первая функция должна прописываться во фрейме где-то.

<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>


Какую строчку вписать нужно, чтобы заработало? Я, конечно, сам сейчас копать буду, так как лёгких путей в таких случаях не ищу, да и не сторонник халявы, но если кому не жаль пары минут, то отпишитесь пожалуйста с примером.

Спасибо.
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2008, 17:09
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

findman,
А что вы хотите получить в итоге? Если вы даже зададите вместо звездочки (или height) фрейма точное число пикселов - прокрутка страницы не появится, только фрейма.
Ответить с цитированием
  #5 (permalink)  
Старый 14.09.2008, 17:24
Новичок на форуме
Отправить личное сообщение для findman Посмотреть профиль Найти все сообщения от findman
 
Регистрация: 14.09.2008
Сообщений: 4

Сделал-нашёл другой вариант Использовал iframes, вместо frameset и другой скрипт. В IE, Mozilla и Opera работает отлично. Спасибо всем!
Ответить с цитированием
  #6 (permalink)  
Старый 15.09.2008, 03:33
Новичок на форуме
Отправить личное сообщение для findman Посмотреть профиль Найти все сообщения от findman
 
Регистрация: 14.09.2008
Сообщений: 4

Вот наткнулся на ещё один подводный камень. Вот скрипт, который я использовал для решения вышеописанной проблеммы:

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 оставляют (не уменьшают) полосу от прошлого документа.

Можно ли уменьшать высоту фрейма автоматически, после того, как в нём был загружен документ большего размера по высоте?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск