Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.11.2021, 20:55
Кандидат Javascript-наук
Отправить личное сообщение для PAMAC Посмотреть профиль Найти все сообщения от PAMAC
 
Регистрация: 12.08.2009
Сообщений: 116

высота iframe по содержимому
Добрый день!

Пытаюсь динамически изменить высоту iframe (подгружается с моего же сайта), ничего не выходит. Как только не пытаюсь получить высоту содержимого - постоянно возвращает 0. Прошу помочь с решением!

Содержимое основной страницы:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<title>1</title>
</head>
<body>
	<iframe src="1.php" id="frame" frameborder="1" onload="resizeIframe(this)"></iframe>
</body>
<script>
  function resizeIframe(obj) {
	//alert(obj.contentWindow.document.getElementsByTagName('body')[0].scrollHeight); - тоже возвращает 0
    obj.style.height = obj.contentWindow.document.documentElement.scrollHeight + 'px'; // возвращает 0
  }
</script>
</html>


Содержимое фрейма:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<title>1</title>
</head>
<body onclick="alert(this.offsetHeight); // а тут возврщает высоту (при нажатии на body)">
	<div style="background:red; width:100px; height:350px;"></div>
</body>
<script>
//window.onload = function() {
	//alert(document.getElementsByTagName('body')[0].offsetHeight); - тоже возвращает 0
	//alert(document.documentElement.scrollHeight); - тоже возвращает 0
//}
</script>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 20.11.2021, 23:03
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Не понятно, что у вас происходит
Вот такой код
fm.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<title>1</title>
</head>
<body>
    <iframe src="fr.html" id="frame" frameborder="1" onload="resizeIframe(this)"></iframe>
</body>
<script>
  function resizeIframe(obj) {
    console.log('main ', obj.contentWindow.document.getElementsByTagName('body')[0].scrollHeight);
    obj.style.height = obj.contentWindow.document.documentElement.scrollHeight + 'px';
  }
</script>
</html>


fr.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<title>1</title>
</head>
<body onclick="alert('fffbc '+this.offsetHeight);">
    <div style="background:red; width:100px; height:350px;"></div>
</body>
<script>
window.onload = function() {
    console.log('frame ', document.getElementsByTagName('body')[0].offsetHeight);
    console.log('frame ', document.documentElement.scrollHeight);
}
</script>
</html>


Отрабатывает совершенно нормально
Выдает

frame 350
frame 366
main 350

И фрейм получает размер по содержимому
Может, что с php не так?
Ошибок в консоле никаких нет?
Они оба на одном сервере?
Ответить с цитированием
  #3 (permalink)  
Старый 21.11.2021, 11:39
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Нарушение политики одного источника.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
colorbox iframe высота по наполнению контента Maroon Events/DOM/Window 0 19.05.2017 16:52
Высота iframe saber135791 jQuery 13 30.09.2013 12:02
Доступ к содержимому iFrame Cylos Общие вопросы Javascript 12 25.06.2012 20:13
Помогите добраться к содержимому iframe Sergey_New Firefox/Mozilla 1 10.10.2011 22:07
iframe и как получить доступ к его содержимому syegorius jQuery 13 14.04.2011 22:05