Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Высота iframe (https://javascript.ru/forum/jquery/30450-vysota-iframe.html)

saber135791 05.08.2012 01:20

Высота iframe
 
Здравствуйте, хотел сделать автоматическое выравнивание высоты iframe по его содержимому, и нашел в интернете такой скрипт:
jQuery(function($) { 

     $('iframe').load(function(){$(this).height($(this).contents().find('html').height());});

});


В Опере и FireFox работает идеально, но в IE вообще не работает, что с этим можно сделать?

Deff 05.08.2012 01:29

saber135791,
Должен работать везде - друго дело - возможно лучше считывать высоту body

Оставьте только эту строку

$('iframe').load(function(){$(this).height($(this) .contents().find('html').height());});

saber135791 05.08.2012 02:02

Цитата:

Сообщение от Deff (Сообщение 194642)
saber135791,
Должен работать везде - друго дело - возможно лучше считывать высоту body

Оставьте только эту строку

$('iframe').load(function(){$(this).height($(this) .contents().find('html').height());});

Не помогло...

Deff 05.08.2012 02:19

saber135791,
Создайте новую чистую страницу - оставьте только библиотеку и фрейм(м и скрипт - разумеется

saber135791 05.08.2012 14:43

Сделал, все также, покажу скриншотами (часть 2 iframe):
Так видит Опера:


А так видит IE:


А вот код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="jQuery.js" type="text/javascript"></script>
<title>Главная</title>
</head>
<body>
<table width="100%" border="1">
<tr>
<td>
Часть 1
</td>
<td>
<iframe id="iframe" src="iframe.html" frameborder="no" marginheight="0" marginwidth="0"></iframe>
</td>
</tr>
</table>
<script type="text/javascript">
$('iframe').load(function(){$(this).height($(this) .contents().find('html').height());});
</script>
</body>
</html>


И iframe:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
Часть 2
</body>
</html>

Deff 05.08.2012 14:58

saber135791,
Для ие и вообще правильнее
всегда задавать изначальные padding и margin

Т.е во фрейме как минимум lj добавьте в хидер такие строки
<style type="text/css">
* {
 padding:0;
 margin:0;
}
</style>

saber135791 05.08.2012 15:30

Все также, но IE при заходе на страницу пишет это: "Браузером Internet Explorer запрещено выполнение скриптов и элементов управления ActiveX с этой странице". Это может быть проблемой?

Deff 05.08.2012 16:10

Цитата:

Сообщение от saber135791
Это может быть проблемой?

Да.
1. Фрейм с Вашего же домена ?
2...

saber135791 05.08.2012 17:29

Да

Deff 05.08.2012 17:39

saber135791,
Попробуйте создать форму и отправить ее с возвратом во фрейм с нужным адресом (обычно при перенаправлениях ответа на форму во фрейм - разрешаются куки, и исполнение скриптов
(изначально src у фрейма сделайте пустым src="" и дайте фрейму имя , которое придется указать в форме

http://htmlbook.ru/html/form см target


Часовой пояс GMT +3, время: 07:01.