В този урок за SEO оптимизиране се показва как уеб страница, която показва swf флаш анимация да бъде преработена към валиден XHTML код.
В примера се приема, че флаша се намира в директория /flash/2009.swf и има размери 294 ширина и 260 височина на полето за анимацията.
Ако кода е писан отдавна, вероятно ще изглежда подобно на този:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="294" height="260"><param name="movie" value="http://arthuradams.bg/flash/2009.swf"><param name="quality" value="high"><param name="wmode" value="opaque"><embed src="http://arthuradams.bg/flash/2009.swf" wmode="opaque" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="294" height="260"></object>
Този код не е валиден XHTML заради тага embed и при опит да мине през валидатора дава грешки, първата от които прилича на тази:
Line 181, Column 17:
Attribute "src" exists, but can not be used for this element.
<embed src="http://arthuradams.bg/flash/2009.swf" wmode="opaque" quality="h...
При търсене в Гугъл по думи като "XHTML embed" излизат десетки статии, в които грешно се посочва, че горния код може да бъде заменен с нещо като:
<!--[if !IE]> --> <object type="application/x-shockwave-flash" data="http://arthuradams.bg/flash/2009.swf" width="294" height="260"><!-- <![endif]--> <!--[if IE]> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="294" height="260"><param name="movie" value="http://arthuradams.bg/flash/2009.swf" /><!--><!--dgx--><param name="loop" value="true"><param name="menu" value="false">This is <b>alternative</b> content.</object> <!-- <![endif]-->
Горния код е грешен и НЕ РАБОТИ!
Според мен единственото XHTML решение работещо на всички браузъри е с използване на JavaScript.
Пример с използване на swfobject.
Изтегли си файла https://ganbox.com/inc/swfobject.js и го качи на твоя сайт. В следващия пример се приема, че е в директория /jscripts
Между таговете head постави реда
<script type="text/javascript" src="/jscripts/swfobject.js"></script>
Там където искаш да се появи флаш филма постави следния div:
<div id="flashcontent" style="float:left; margin:10px"> <strong>You need to upgrade your Flash Player</strong></div>
Слад това в страницата изпълни скрипта
<script type="text/javascript"> // <![CDATA[ var so = new SWFObject("http://arthuradams.bg/flash/2009.swf", "title", "294", "260", "7", "#FF6600"); so.write("flashcontent"); // ]]> </script>
Естествено вместо arthuradams.bg напиши името на домейна на твоя сайт. Би трябвало да стане и само с "/flash/2009.swf".
Работещ пример има в старница обучения от ArthurAdams.bg, която е валиден XHTML.
В статията се ползва кода на проекта swfobject.
Прочетена:18601
SWFObject е нещо толкова велико, колкото и просто. Преди няколко дена продадох една банер позиция и клиентът ми изпраща банер, който да поставя. Шок! - банерът е на Flash. След 8 години уеб програмиране никога не ми се беше налагало да се занимавам и да вмъквам отричания от мен Flash.
Знаех за SWFObject и си реших проблема за 5 минути. Задаваш дестинация, размери и цвят, и си готов 🙂
Големи благодарности!!!
Реших си проблема, най-после с валидността на кодовете, когато добавям флаш анимации в сайтовете.
Показания пример работи безотказно в няколко мои сайта. Съобщението, което виждаш се показва, защото флаш файла е по-нова версия спрямо инсталирания флаш плеър в твоя браузър. Съвет: винаги ползвай възможно най-ниската флаш версия, когато правиш флаш банер. В противен случай всеки, който не е обновил флаш плеъра си ще вижда такова досадно съобщение.
И на мен ми се наложи да поставя flash банер и реших да изпробвам написаното тук, но се появява текста, че трябва да се ъпгрейдва флаш плейъра. Изтеглих последната версия и отново пробвах - същото. Изпробвах варианта и който е на code.google. com/p/swfobject/, отново само алтернативния текст се появи.
Само тук намерих подробно обяснение на български за използването на SWFObject, ако имате подозрение (или направо познание) къде може да е проблема, бихте ли помогнали с идея?