Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Подстройка высоты IFrame / 9 сообщений из 9, страница 1 из 1
15.05.2007, 19:30
    #34527467
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстройка высоты IFrame
Задача - изменить высоту IFrame.

Код, приведённый ниже, проглатывается MSIE на ура, значения запоминаются, но высота/ширина IFrame не меняется.
Код: plaintext
1.
2.
3.
4.
5.
var myIframe = document.getElementById('MyIFrame');

..................

myIframe.width =  200 ;
myIframe.height =  500 ;

или так:

Код: plaintext
1.
myIframe.Width =  500 ;
myIframe.Height =  500 ;

Может быть, это вообще невозможно - динамически менять высоту IFrame?

P.S. И ещё немного странно, что у IFrame есть width и Width, height и Height, причём те, которые с большой буквы - типа Long, а те, что с маленькой - String.
...
Рейтинг: 0 / 0
15.05.2007, 21:32
    #34527638
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстройка высоты IFrame
myIframe.style.width?
...
Рейтинг: 0 / 0
16.05.2007, 02:15
    #34527871
StepLg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстройка высоты IFrame
ответ по второму вопросу - типы полей.

читать http://jibbering.com/faq/faq_notes/closures.html
втыкать.
еще раз втыкать.
...
Рейтинг: 0 / 0
16.05.2007, 14:58
    #34529473
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстройка высоты IFrame
AntonariymyIframe.style.width?
Да!

myIframe.style.height = myIframe.Document.body.scrollHeight;

Только вот scrollHeight почему-то меньше, чем высота содержимого.
...
Рейтинг: 0 / 0
16.05.2007, 15:01
    #34529490
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстройка высоты IFrame
BPK AntonariymyIframe.style.width?
Да!

myIframe.style.height = myIframe.Document.body.scrollHeight;

Только вот scrollHeight почему-то меньше, чем высота содержимого.
Понял - потому, что надо не Document, а document
...
Рейтинг: 0 / 0
16.05.2007, 15:14
    #34529548
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстройка высоты IFrame
Вот ещё:
я понял, что через scrollHeight и clientHeight работает плохо - по мере увеличения высоты IFrame оба значения тоже увеличиваются.
Я придумал подстраивать размер по высоте таблицы репорта, вмонтированного в IFrame. Только как получить доступ к параметрам таблицы?
...
Рейтинг: 0 / 0
16.05.2007, 15:51
    #34529743
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстройка высоты IFrame
Ещё не всё гладко, тем не менее - Итого:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
<script type="text/javascript">
<!--
function ResizeIFrame(evt) {
  var evt=(evt)? evt : event;
  var target=(evt.target)? evt.target : evt.srcElement;
  //in W3C model the event triggers inside of iframe
  if (target.nodeType == 9) {
    if (evt.currentTarget && evt.currentTarget.tagName.toLowerCase() == "iframe") {
      target = evt.currentTarget;
    }
  }
  if (target) {
    AdjustIFrameSize(target.id);
  }
}

function AdjustIFrameSize(id) {
  var myIframe = document.getElementById(id);
  if (myIframe) {
    // W3C DOM (and Mozilla) syntax
    if (myIframe.contentDocument && myIframe.contentDocument.body.offsetHeight) {
      myIframe.height = myIframe.contentDocument.body.offsetHeight;
    }
    else
      // IE DOM syntax
      if (myIframe.document && myIframe.document.body.clientHeight){
        myIframe.style.height = myIframe.document.body.clientHeight;
      }
    // assign onload event handler to iframe
    if (myIframe.addEventListener) {
      myIframe.addEventListener("load", ResizeIFrame, false);
    }
    else {
      myIframe.attachEvent("onload", ResizeIFrame);
    }
  }
}
-->
</script>
</head>
<body onload="AdjustIFrameSize('ReportFrameLatencyCube'); return false;">
    <input
     type="button"
     name="button1"
     onclick="AdjustIFrameSize('ReportFrameLatencyCube'); return false;"
     value="Подстроить" />
    <form name="form1" method="post" action="Default.aspx" id="form1">

<iframe id="ReportFrameLatencyCube" name="ReportFrameLatencyCube">
.....................
</iframe>

</body>
</html>
...
Рейтинг: 0 / 0
16.05.2007, 18:08
    #34530372
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстройка высоты IFrame
Точно есть одна ошибка:

Нужно не myIframe.document.body.clientHeight;
а что-то типа
myIframe.contentWindow.document.body.clientHeight;

т.к. document указывает на тот документ, в котором лежит myIframe.

Теперь проблема в другом:
myIframe.contentWindow.document.body.clientHeight всегда равен 198 - т.е. размеру самого myIframe, а не его содержимого.
...
Рейтинг: 0 / 0
17.05.2007, 13:03
    #34532212
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстройка высоты IFrame
Короче, плюнул на всё, нашёл косвенное решение, зато работающее на серверной стороне - надёжность 100% + независимость от версии браузера. Подходит только для конкретного проекта.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Подстройка высоты IFrame / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]