|
17.01.2013, 19:31
|
Интересующийся
|
|
Регистрация: 17.01.2013
Сообщений: 10
|
|
Как получить 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>
И если можно скиньте ссылочку если где-нить есть развёрнутая инфа по решению данной проблемы.
|
|
17.01.2013, 19:37
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
|
|
17.01.2013, 19:39
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
<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>
|
|
17.01.2013, 21:40
|
Интересующийся
|
|
Регистрация: 17.01.2013
Сообщений: 10
|
|
Спасибо за ответ. Попробую немного уточнить ситуацию, вот например строка html-страницы в которую внедряется SWF-файл:
Код:
|
<object id="FlashID" classid="clsid:A27CDB6E-AE6D-11cf-96B8-444553540000" width="100%"
height="<?php echo $widhSWF; ?>"> |
В этой строке высота SWF-файла задаётся при помощи PHP-скрипта:
<?php echo $widthSWF; ?>
коротко и понятно.
Вопрос: есть-ли аналогичный способ вставки при помощи JS короткого значения, или мне придётся загонять весь код div-а внедрения SWF в строку в функции JS, там-же подставлять переменные и выводить всё это при помощи document.getElementById('write').innerHTML
|
|
17.01.2013, 21:59
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Chum,
Непонятно объяснили - выложите HTML код элемента и всех входящих в элемент (*Вставка кода - кнопка
и укажите какому элементу и что нужно прописать
|
|
17.01.2013, 22:56
|
Интересующийся
|
|
Регистрация: 17.01.2013
Сообщений: 10
|
|
Всё объяснять долго. Речь идёт о вставке в контент SWF-файла, причём рассматривается вариант задания размеров не явных (НЕ н.п. 800 и 600 пкс), а возможно в процентах, для более полного отображения SWF-файла на различных мониторах. Сделать это зная только разрешение монитора не получится, для этого требуется знать реальную ширину div в который внедряется SWF-файл, что можно сделать как я понимаю только в JS при загрузке непосредственно в браузер. При загрузке будет произведён расчёт реальных размеров, выбран оптимальный вариант и весь код будет записан в html.
Я пишу на ActionScript 3, этот язык похож на JS но я с JS работал мало и поэтому сейчас у меня некоторые затруднения.
Сейчас я пробую в JS создать строковую переменную вставки SWF с подстановкой полученных в результате расчёта значений размеров SWF-файла а затем методом document.getElementById('write').innerHTML записать эту строку в div, тем самым вставить SWF-файл.
|
|
17.01.2013, 23:00
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Chum,
Итоговый HTML ,без скриптов
И второе: размеры до загрузки контента и после - могут быть различны
Какой нужен ?
|
|
17.01.2013, 23:14
|
Интересующийся
|
|
Регистрация: 17.01.2013
Сообщений: 10
|
|
Вот первоначальный 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
|
|
17.01.2013, 23:18
|
Интересующийся
|
|
Регистрация: 17.01.2013
Сообщений: 10
|
|
В конечном итоге требуется задать оптимальную высоту SWF для того монитора на котрый загружается SWF
|
|
17.01.2013, 23:24
|
Интересующийся
|
|
Регистрация: 17.01.2013
Сообщений: 10
|
|
Из того html который я выложил я уберу все комментарии, уберу кое-какие необязательные теги, соберу html покомпактнее, обращу в строку, вставлю полученные из JS размеры и выведу в div, хотя если бы можно было бы тупо вставить полученные размеры в строки 5 и 15 то было бы проще.
|
|
|
|