Публикувано в (SEO, Валиден HTML код) от на 15 май 2009 в 18:42

Тага 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> блок, който да съдържа зареждане на първата картинка. Така поне първата картинка от поредицата картинки ще се покаже.

Брой разглеждания на тази статия: 3381
(след дата 20 декември 2009)

Сподели статията в Бутончета на сайтове, в които можете да споделите линк към тази страница.
  • CenBg.com
  • BgrStar.com
  • Novoto.net
  • Bghot.net
  • Trohi.com
  • Zdravei.net
  • Web-bg.com
  • Plus
  • Facebook
  • Twitter

Подобни статии:

  1. Флаш анимация без таг embed за валиден XHTML В този урок за SEO оптимизиране се показва как уеб страница, която показва swf флаш анимация да бъде преработена към...
  2. Заместване на тага marquee за валиден XHTML HTML тага marquee се използва за автоматично скролиране на текст. Текста поставен между тагове marquee се показва от браузъра като...
  3. Премахване на грешки в сайт и преминаване към XHTML Тази статия е за често срещани HTML грешки в сайтовете и оправянето им с помощта на HTML валидатора http://validator.w3.org  Валидаторът...
  4. Видео клип в уеб страница В тази статия ще покажа как бързо и лесно да включиш филм в уеб страница на твоя сайт. Като резултат...
  5. Карта от Google Maps и валиден XHTML Google Maps карта за твоя сайт В статията Google maps – бързо включване на карта в сайт показах, как бързо да...
Ако тази статия е била полезна за теб може да почерпиш автора в тази страница »


Коментари
Васил Тошков на 17 май 2009 в 15:40 #

Тази смяна на картинки може спокойно да се направи само на JavaScript и с jQuery. Така се избягва бавния и неудобен Flash, а картинките си остават достъпни за търсачката, което е много важно. Виж cms.cloxy.com – има демо на подобно нещо на JS и jQuery.

А що се отнася до видеотата, в HTML5 ще има video таг, където видео файлове ще се вкарват като картинки :) Flash е излишен ;)

gan на 17 май 2009 в 22:11 #

Както казах има няколко решения. Cloxy благодаря за варианта с jquery!
В случая имам клиент, който държи на флаша и бутончетата за бърза смяна на картинките. Ще ти обърна внимание, че дори кратката версия jquery-1.3.2.min.js е 56 KB срещу файла на флаш плеъра от 15 KB. Така че проблем със скоростта няма. Всъщност правя следния експеримент: под линукс с 4 различни браузъра отварям ту страница cms.cloxy.com, ту livadeto.com/vila и първата е доста по-тежка и държи процесора почти постоянно на 100%. Само под Opera е еднакво. Не знам как го правят, но работи в пъти по-добре от Firefox :)
За индексирането на картинките си прав и затова съм започнал да правя отделна галерия.

Васил Тошков на 18 май 2009 в 13:23 #

Много зависи от това какъв ти е процесорът. При мен Flash направо ми залепва мишката по екрана. Това на 5 годишен лаптоп. Затова избягвам да го използвам.

gan на 20 май 2009 в 21:23 #

Приемам, че е така – нямам време да го изследвам. По принцип аз също избягвам Flash, както личи от сайта ми. Ако тази статия беше на тема „Как се прави слайдшоу“, сигурно щях да препоръчам да се ползва jquery, но тук се говори за „Преминаване към XHTML на съществуващ сайт с флаш“, като флаша е изискване.

Мая на 13 март 2010 в 21:33 #

Примерът е даден със .swf, а ако вкарвам видео от youtube? Как да си валидирам кода?

gan на 14 март 2010 в 0:13 #

Виж как е направено в http://ipotpalmax.com/2010/ипотпал-ревю-на-acer-aspire-1410-лаптоп/ Ползва се същата техника. Трябва ти да вмъкнеш файла http://ipotpalmax.com/js/swfobject.js и след това код подобен на:

<div id="flashcontent1"></div>
<p><script type="text/javascript">
var so = new SWFObject("http://www.youtube.com/v/cIxd8iGTW3k",  "Описание на видеото", "480", "385", "7", "#FF6600"); so.write("flashcontent1");
</script></p>

В този случай ширината на прозореца на клипа е 480, а височината 385. Тези стойности, както и URL на клипа можеш да вземеш като отврориш видеото в youtube и отдясно в полето Embed ще видиш данните, които ти трябват.

Мая на 14 март 2010 в 12:25 #

Ще го пробвам, но гледам, че пише вмъкване на SWF object, а на youtube файловете са с разширение .flv

gan на 15 март 2010 в 21:06 #

Мая, очакваш да те убеждавам ли? Показал съм ти работещ пример на точно това, което търсиш. Ако това не може да ти помогне, значи никой не може.

Напиши коментар

Твоето име: (без ключови думи!) 
Имейл: (не се показва) 
Сайт: (незадължително) 
Коментар