powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Подстройка высоты IFrame
9 сообщений из 9, страница 1 из 1
Подстройка высоты IFrame
    #34527467
BPK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача - изменить высоту 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
Подстройка высоты IFrame
    #34527638
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myIframe.style.width?
...
Рейтинг: 0 / 0
Подстройка высоты IFrame
    #34527871
StepLg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ответ по второму вопросу - типы полей.

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

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

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

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

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

Код: 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
Подстройка высоты IFrame
    #34530372
BPK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно есть одна ошибка:

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

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

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


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