Как получить offsetWidth элемента
Плиз объяснить новичку, почему не выводиться ширина div. В Opera, EI, Chrom работает а в Мозилле нет:
<div id="mydiv" style="width: 100%; display: block;">qwerty</div> <script> var znach = mydiv.offsetWidth + 'px'; document.write(znach); </script> И если можно скиньте ссылочку если где-нить есть развёрнутая инфа по решению данной проблемы. |
Chum,
getElementById |
<div id="mydiv" style="width: 100%; display: block;">qwerty</div> <div id="write"></div> <script> var znach = document.getElementById('mydiv').offsetWidth + 'px'; document.getElementById('write').innerHTML=znach; </script> |
Спасибо за ответ. Попробую немного уточнить ситуацию, вот например строка html-страницы в которую внедряется SWF-файл:
Код:
<?php echo $widthSWF; ?> коротко и понятно. Вопрос: есть-ли аналогичный способ вставки при помощи JS короткого значения, или мне придётся загонять весь код div-а внедрения SWF в строку в функции JS, там-же подставлять переменные и выводить всё это при помощи document.getElementById('write').innerHTML |
Chum,
Непонятно объяснили - выложите HTML код элемента и всех входящих в элемент (*Вставка кода - кнопка ![]() и укажите какому элементу и что нужно прописать |
Всё объяснять долго. Речь идёт о вставке в контент SWF-файла, причём рассматривается вариант задания размеров не явных (НЕ н.п. 800 и 600 пкс), а возможно в процентах, для более полного отображения SWF-файла на различных мониторах. Сделать это зная только разрешение монитора не получится, для этого требуется знать реальную ширину div в который внедряется SWF-файл, что можно сделать как я понимаю только в JS при загрузке непосредственно в браузер. При загрузке будет произведён расчёт реальных размеров, выбран оптимальный вариант и весь код будет записан в html.
Я пишу на ActionScript 3, этот язык похож на JS но я с JS работал мало и поэтому сейчас у меня некоторые затруднения. Сейчас я пробую в JS создать строковую переменную вставки SWF с подстановкой полученных в результате расчёта значений размеров SWF-файла а затем методом document.getElementById('write').innerHTML записать эту строку в div, тем самым вставить SWF-файл. |
Chum,
Итоговый HTML ,без скриптов И второе: размеры до загрузки контента и после - могут быть различны Какой нужен ? |
Вот первоначальный html от которого я отталкивался, он взят из Дрима.
<div style="background-color:#<?php echo $this->item->colswf; ?>"> <?php echo $this->item->editra; ?> <div> <script src="components/com_kartarf/images/swf/Scripts/swfobject_modified.js" type="text/javascript"></script> <object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="<?php echo $this->item->swfwdt; ?>" height="<?php echo $this->item->swfhgt; ?>"> <param name="movie" value="components/com_kartarf/images/swf/karta.swf" /> <param name="quality" value="high" /> <param name="wmode" value="window" /> <param name="swfversion" value="6.0.65.0" /> <param name="flashvars" value="<?php echo $this->item->strFlVar; ?>"/> <!-- Этот тег param предлагает пользователям Flash Player 6.0 r65 и более поздних версий загрузить последнюю версию Flash Player. Удалите его, если не хотите, чтобы пользователи видели запрос. --> <param name="expressinstall" value="Scripts/expressInstall.swf" /> <!-- Следующий тег object не поддерживается браузером Internet Explorer. Поэтому скройте его от Internet Explorer при помощи IECC. --> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="components/com_kartarf/images/swf/karta.swf" width="<?php echo $this->item->swfwdt; ?>" height="<?php echo $this->item->swfhgt; ?>"> <!--<![endif]--> <param name="quality" value="high" /> <param name="wmode" value="window" /> <param name="swfversion" value="6.0.65.0" /> <param name="expressinstall" value="components/com_kartarf/images/swf/Scripts/expressInstall.swf" /> <param name="flashvars" value="<?php echo $this->item->strFlVar; ?>"/> <!-- Браузер отображает следующее альтернативное содержимое для пользователей Flash Player 6.0 и более старых версий. --> <div> <h4>Для содержимого этой страницы требуется более новая версия Adobe Flash Player.</h4> <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Получить проигрыватель Adobe Flash Player" width="112" height="33" /></a></p> </div> <!--[if !IE]>--> </object> <!--<![endif]--> </object> <script type="text/javascript"> swfobject.registerObject("FlashID"); </script> </div><?php echo $this->item->editrb; ?></div> Если внимательно посмотреть на HTML можно понять что речь идет о компоненте Joomla 2.5 |
В конечном итоге требуется задать оптимальную высоту SWF для того монитора на котрый загружается SWF
|
Из того html который я выложил я уберу все комментарии, уберу кое-какие необязательные теги, соберу html покомпактнее, обращу в строку, вставлю полученные из JS размеры и выведу в div, хотя если бы можно было бы тупо вставить полученные размеры в строки 5 и 15 то было бы проще.
|
Часовой пояс GMT +3, время: 19:46. |