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

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