XHTML и заместване на тага embed

Тага embed служи за вмъкване на видео или аудио файл в уеб страница, така че при зареждане на страницата мултимедийния файл може да  започне да се изпълнява директно. За съжаление този таг не е по XHTML стандарта и се използват различни техники за заместването му.

Ако имаш обикновен swf файл с флаш анимация, която искаш да стане валиден XHTML, прочети Флаш анимация без таг embed за валиден xhtml

В разгледания пример има HTML код за смяна на картинки – слайдшоу. Картинките са описани в XML файл, който се подава на SWF файл. Файла player.swf е флаш плеър, който сменя картинките, като плавно прелива от едната в другата през 5 секунди. Освен това в долния десън ъгъл показва толкова бутончета, колкото са картинките и може бързо да се превключва между тях. Работеща версия може да видиш в страницата на вила Ливадето.

Стария HTML код е несъвместим с XHTML стандарта и дава грешки при проверка с валидатора.
Ето грешния код:

<div id=“slideshow“><object width=880 height=330
classid=“clsid:D27CDB6E-AE6D-11CF-96B8-444553540000″
codebase=“http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab“>
<param name=“movie“ value=“player.swf“>
<param name=“quality“ value=“high“>
<param name=“loop“ value=“true“>
<param name=“wmode“ value=“opaque“>
<param name=“autoplay“ value=“true“>
<param name=“FlashVars“ value=“bcastr_xml_url=slideshow.xml&AutoPlayTime=5″>
<embed src=“player.swf“ width=880 height=330 quality=“high“
type=“application/x-shockwave-flash“ wmode=“opaque“
FlashVars=“bcastr_xml_url=slideshow.xml&AutoPlayTime=5″ loop=“true“ autoplay=“true“
pluginspage=“http://www.macromedia.com/go/getflashplayer“></embed>
</object>
</div>

Този код се замества със следния валиден код:

<div id=“slideshow“>
<script src=“ac_activex.js“ type=“text/javascript“></script>
<script type=“text/javascript“>
AC_RunFlashContent(‘width’,’880′,’height’,’330′,’quality’,’high’,
‘autoplay’,’true’,’loop’,’true’,’wmode’,’opaque’,
‘FlashVars’,’bcastr_xml_url=slideshow.xml&amp;AutoPlayTime=5′,’codebase’,
‘http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab’,’pluginspage’,
‘http://www.macromedia.com/go/getflashplayer’,’src’,’player.swf’);
</script>
</div>

За да работи този скрипт е нужен файла ac_activex.js да бъде качен в главната уеб директория. Той осигурява и това страницата да работи на всички браузъри. В примера се предполага, че файловете player.swf и slideshow.xml също са в главната уеб директория.

Крайният резултат е валиден HTML документ и работещ код на всички браузъри.

Ако JavaScript-а на браузъра е спрян, този код няма да сработи. За съжаление в момента нямам решение с тага object, което да работи на всички браузъри и да е валиден XHTML. Ако някой има идеи да пише, ще се радвам да ги науча. Най-малкото което може да се направи е да се сложи <noscript> блок, който да съдържа зареждане на първата картинка. Така поне първата картинка от поредицата картинки ще се покаже.

Прочетена:7273
« Предишна публикация

Supplemental results

Supplemental results (Допълнителни резултати). Това е част от индекса на Google, в който влизат страници с недостатъчно съдържание, страници с не уникално съдържание или страници, които нямат нито една връзка към себе си. Основната цел на ... Повече информация »

Следваща публикация »

Линукс трикове

Няколко скрипта за команден ред под Линукс, които ползвам често при seo оптимизация на сайт. Работят с много файлове наведнъж и спестяват много време. 1. Заместване разширението на файлове. for x in *.html; do mv "$x" ... Повече информация »

8 коментара

  1. gan 17.05.2009
  2. gan 20.05.2009
  3. Мая 13.03.2010
  4. gan 14.03.2010
  5. Мая 14.03.2010
  6. gan 15.03.2010