Поскольку iframe без границ можно легко интегрировать с веб-страницей, можно обновить некоторые данные страницы без обновления страницы. Однако размер iframe не так «масштабируем», как слой, поэтому это создает проблемы. Проблема в использовании: слишком большое значение не подходит для установки высоты iframe, а меньшее значение еще хуже. Теперь позвольте мне рассказать вам, как динамически регулировать высоту iframe, в основном с помощью следующей функции JS:
программный код
функция SetWinHeight(obj)
{
вар выигрыш = объект;
если (document.getElementById)
{
если (выиграть && !window.opera)
{
if (win.contentDocument && win.contentDocument.body.offsetHeight)
win.height = win.contentDocument.body.offsetHeight;
иначе, если(win.Document && win.Document.body.scrollHeight)
win.height = win.Document.body.scrollHeight;
}
}
}
Наконец, при добавлении iframe вы не можете потерять атрибут onload. Конечно, идентификатор также должен соответствовать выигрышу в функции.
программный код
<iframe width="778" align="center" height="200" id="win" name="win" onload="Javascript:SetWinHeight(this)"frameborder="0" прокрутка="no"></ iframe>
решение iframe для другой ситуации (очень простое)
Важное примечание: адрес веб-страницы, который вы должны указать в поле src=, должен находиться на том же сайте, что и эта страница, в противном случае возникнет ошибка с надписью «Доступ запрещен!» (На самом деле это из-за междоменной проблемы!) Js, что приводит к отказу в доступе).
Я уже сталкивался с этой проблемой раньше. Я поискал ответ в Интернете и обнаружил, что многие люди также сталкивались с этой проблемой. Теперь я поделюсь решением.
1. Создайте файл Bottom.js и введите следующий код (всего две строки)
родитель.document.all("идентификатор фрейма").style.height=document.body.scrollHeight;
родитель.document.all("Имя идентификатора фрейма").style.width=document.body.scrollWidth;
Имя идентификатора кадра здесь — это идентификатор Iframe, например:
<IFRAME id="идентификатор фрейма" name="left"frameBorder=0 прокрутка=no src="XXX.asp" width="100%"></IFRAME>
2. Добавьте каждый из включенных файлов на свой веб-сайт.
<язык сценариев = "JavaScript" src = "bottom.js"/></script>
3. Ладно, хватит!
Прошел тест под WINXP и IE6. Это очень просто!
Реализация адаптивной высоты iframe
Реализуйте адаптивную высоту iframe, которая может автоматически адаптироваться к длине страницы, чтобы избежать явления полос прокрутки, появляющихся одновременно на странице и в iframe.
программный код
<тип сценария="текст/javascript">
//** iframe автоматически адаптируется к странице**//
//Введите список имен iframe, высоту которых вы хотите автоматически регулировать в зависимости от высоты страницы
//Разделяйте идентификатор каждого iframe запятой. Например: ["myframe1", "myframe2"] может быть только одна форма, поэтому запятая не требуется.
//Определяем идентификатор iframe
var iframeids=["тест"]
//Если браузер пользователя не поддерживает iframe, следует ли скрывать iframe, да означает скрытый, нет означает не скрытый.
вар iframehide="да"
функция dyniframesize()
{
вар dyniframe = новый массив ()
для (i=0; i<iframeids.length; i++)
{
если (document.getElementById)
{
//Автоматически регулировать высоту iframe
dyniframe[dyniframe.length] = document.getElementById(iframeids);
если (dyniframe && !window.opera)
{
dyniframe.style.display="блокировать"
if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) //Если браузер пользователя NetScape
dyniframe.height = dyniframe.contentDocument.body.offsetHeight;
else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) //Если браузер пользователя IE
dyniframe.height = dyniframe.Document.body.scrollHeight;
}
}
//Согласно заданным параметрам решаем проблемы с отображением браузеров, не поддерживающих iframe
if ((document.all || document.getElementById) && iframehide=="no")
{
var tempobj=document.all? document.all[iframeids]: document.getElementById(iframeids)
tempobj.style.display="блокировать"
}
}
}
если (window.addEventListener)
window.addEventListener("load", dyniframesize, false)
иначе, если (window.attachEvent)
window.attachEvent("onload", dyniframesize)
еще
window.onload=dyniframesize
</скрипт>
Обратная связь: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1608312.