-
data publikacji: 14.12.2008
Jak poprawnie osadzić Flasha w kodzie (X)HTML strony?
kategoria: Flash, Skrypty client-side, XHTML/CSS autor: m1chu
Walidacja kodu jest istotna. Nieważne czy powodem jest chęć wyszlifowania w sobie dobrych nawyków, czy po prostu zwykła i naturalna potrzeba poprawienia napisanego przez siebie kodu. Co jednak jeżeli tworzysz stronę wg. przyjętych w specyfikacji zasad, z dumą chcesz umieścić na niej odnośnik potwierdzający poprawność kodu zawierającego animację Flash i nagle spotka Cię niemiła niespodzianka? I wszystko poprzez krążące po zaułkach Internetu niepoprawne konstrukcje osadzania wcześniej wymienionej technologii...
W jaki sposób poprawnie implementować Flash? Jakich zastępczych metod można używać? Co jest sprawcą tego, że z reguły nasz kod jest nieprawidłowy? Ten artykuł odpowie Ci na wszystkie powyższe pytania...
Internet źródłem nieprawidłowego rozwiązania...
Pomimo tego, że treści dostępne w kanonach sieci są podatne na "proces edukacji" i powoli zmieniają swoją zawartość na coraz to bardziej prawidłową, to nadal można znaleźć wiele wyników wyszukiwań które są rozwiązaniami błędnymi. Tak jest także z tematyką poruszaną w tym wpisie.
<embed type="application/x-shockwave-flash"
width="1024"
height="768"
src="flash.swf"
quality="high"
bgcolor="#ffffff">
<noembed>
Przeglądarka nie obsługuje znacznika "embed", animacja Flash nie zostanie wyświetlona!
</noembed>
</embed>Oto przykład jednej z nieprawidłowych solucji. Problemem jest tu znacznik
embedktóry nie jest, ani częścią specyfikacji HTML4, ani XHTML1.x, a jedynie naleciałością wprowadzoną kiedyś przez programistów Netscape Navigatora. Ponieważ jednak jest on wspomagany także przez przeglądarki takie jak Opera, Firefox, Safari, czy Internet Explorer przyjęło się pospolicie użytkowanie powyższego, nieprawidłowego rozwiązania (a wszystko za sprawą nieszczęsnego, kapitalistycznego marketingu w postaci bezmyślnego kopiowania danego artykułu ze strony na stronę i czerpania z tego korzyści). Niekiedy można napotkać także poradę w którejembedznajduje się w taguobject, które w takim połączeniu jest także błędne.Ciut teorii:
embed- jest znacznikiem wykorzystywanym do wstawiania obiektów typu plugin do kodu strony. Niezgodny z specyfikacją HTML4 i XHTML1. Obsługiwany jednak przez Firefoksa 1.0+, Mozille 0.6+, Operę 3.0+, Safari, Netscape Navigatora 1.0+ i Internet Explorera 3.0+. Obsługuje atrybutyclass,dir,hidden,hspace,id,lang,name,pluginpage,srcistyle. Używany często wraz znoembed(także niezgodnym z w.w. specyfikacjami) którego zawartość wyświetlana jest w momencie kiedy przeglądarka nie obsługujeembed.Przykład:
<embed src="stream.mp3" type="audio/mp3" style="width: 640px; height: 480px;">
<noembed>
Tekst dla przeglądarek nie obsługujących "embed".
</noembed>
</embed>W wyniku, po wykonaniu walidacji otrzymamy kilka błędów związanych z użyciem właśnie tego, nieprawidłowego tagu.

Osadźmy więc poprawnie...
Jeżeli chcemy kierować się zaleceniami specyfikacji to musimy skupić się jedynie na znacznikach
objectz zaaplikowanymi wewnątrz sparametryzowanymi tagamiparam(metoda nazwana Flash Satay). Od tego momentuembedprzechodzi w niepamięć, bo tak naprawdę wszystko co dzięki niemu mogliśmy osiągnąć, będziemy mogli stworzyć także poprzez naszą nową formułę.Kilka słów wyjaśnienia o głównym obiekcie naszych zainteresowań:
object- pozwala na wstawienie do dokumentu obiektu multimedialnego. Zaimplementowany w przeglądarkach Firefox 0.1+, Opera 4.0+, Mozilla 0.6+, Safari, Netscape Navigator 6.0+ i Internet Explorer 3.0+. Służy za zamiennik m.in. dla niepoprawnychbgsound, czyembed. Znacznik ten jest częścią specyfikacji HTML 4.01 Strict/Transitional/Frameset, XHTML 1.0 Strict/Transitional/Frameset oraz XHTML 1.1. Obsługuje atrybuty takie jak:accesskey,archive,class,classid,codebase,codetype,data,dir,id,lang / xml:lang,name,style,title,typeixmlns.Przykład:
<!-- próba załadowania pliku MOV typu QuickTime -->
<object data="katalog/film.mov" type="video/quicktime" style="width: 640px; height: 480px;">
<!-- jeżeli plik MOV nie będzie mógłbyć załadowany zostanie podjęta próba załadowania w jego miejsce grafiki o rozszerzeniu PNG -->
<object data="katalog/alternatywa.png" type="image/png" style="width: 640px; height: 480px;">
<p>
Tekst wyświetlany w wypadku nie załadowania jakiegokolwiek z zasobów dwóch powyższych znaczników.
</p>
</object>
</object>Tak więc, aby wkomponować w naszą stronę obiekt Flash musimy określić co najmniej typ tego obiektu (
type), plik źródłowy (data) i ostylować jego wymiary (style). Z podanej listy typów MIME dostrzegamy, że pożądanym przez nas jest application/x-shockwave-flash. Należy zwrócić uwagę na fakt, że nie korzystamy w ostatnim przypadku bezpośrednio z parametrówheightorazwidth, a idąc z duchem czasu wykorzystujemy po prostu możliwości wewnętrznego arkusza stylów.Teoretycznie o parametryzacji:
param- pozwala na wprowadzenie parametrów do obiektów (object) i apletów (przestarzale za pomocąapplet, bądź aktualnie także za pomocąobject). Każdy z takowych parametrów musi być ustawiony w osobnym znacznikuparam. Jest zgodny z dokumentacją HTML 4.01 Strict/Transitional/Frameset, XHTML 1.0 Strict/Transitional/Frameset oraz XHTML 1.1, a także obsługiwany w przeglądarkach Firefox 0.1+, Opera 4.0+, Mozilla 0.6+, Netscape Navigator 6.0+ i Internet Explorer 3.0+. Obsługuje atrybuty takie jak:id,name,valueorazxmlns(tylko dla XHTML).Przykład dla XHTML 1.0:
<!-- próba załadowania pliku MPG -->
<object data="katalog/film.mpg" type="video/mpeg" style="width: 640px; height: 480px;">
<param name="autoplay" value="true" />
<param name="pluginspage" value="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" />
<!-- jeżeli plik MPG nie będzie mógłbyć załadowany zostanie podjęta próba załadowania w jego miejsce filmu w postaci MOV -->
<object data="katalog/film.mov" type="video/quicktime" style="width: 640px; height: 480px;" title="Filmik alternatywny!">
<param name="autoplay" value="true" />
<param name="pluginspage" value="http://quicktime.apple.com/" />
<p>
Tekst wyświetlany w wypadku nie załadowania jakiegokolwiek z zasobów dwóch powyższych znaczników.
</p>
</object>
</object>Przykład HTML:
<!-- próba załadowania pliku MPG -->
<object data="katalog/film.mpg" type="video/mpeg" style="width: 640px; height: 480px;">
<param name="autoplay" value="true">
<param name="pluginspage" value="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/">
<!-- jeżeli plik MPG nie będzie mógłbyć załadowany zostanie podjęta próba załadowania w jego miejsce filmu w postaci MOV -->
<object data="katalog/film.mov" type="video/quicktime" style="width: 640px; height: 480px;" title="Filmik alternatywny!">
<param name="autoplay" value="true">
<param name="pluginspage" value="http://quicktime.apple.com/">
<p>
Tekst wyświetlany w wypadku nie załadowania jakiegokolwiek z zasobów dwóch powyższych znaczników.
</p>
</object>
</object>Aby mieć pewność, że każda nowoczesna przeglądarka będzie poprawnie egzekwować tą metodą powinniśmy użyć dodatkowo kilku nazw parametrów. W naszym przypadku będą to kolejno ścieżka wraz z nazwą pliku animacji Flash (
movie), a także jakość (quality). Nie są to oczywiście wszystkie dostępne własności. Przede wszystkim wśród nich możemy wyróżnić:- play przyjmujące wartość true (domyślne) / false określające, czy animacja ma być odtwarzana wraz z załadowaniem strony.
- loop przyjmujące także wartość true (domyślne) / false określające, czy animacja ma być wyświetlana ponownie w pętli po zakończeniu poprzedniego odtwarzania.
- bgcolor przyjmujące wartość #rrggbb i określające (szesnastkowo) kolor tła.
- menu przyjmujące wartości true (menu z dodatkowymi funkcjami) / false.
- quality przyjmujące wartości best (najlepsza jakość wraz z Anti-Aliasingiem dla wszystkich elementów), high (występuje Anti-Aliasing, ale wygładzanie jest tylko w przypadku statyczności elementów), autohigh (w przypadku spadku wydajności usuwa Anti-Aliasing w celu zachowania poziomu szybkości animacji), medium (podobnie jak w poprzednim przypadku, ale bez wygładzania), low (najsłabsza jakość bez A-A) i autolow (Anti-Aliasing włączany jest dopiero w przypadku kiedy pozwalają na to zasoby w takim stopniu, aby nie pojawił się znaczy spadek poziomu prędkości działania animacji).
- scale przyjmujące wartości exactfit (klip dopasowany jest do podanych wymiarów), noborder (dopasowuje proporcjonalnie skalując animację do obszaru) i showall (wyświetla w podanym obszarze bez zmian w proporcjach).
- allowscriptaccess nadaje prawa do wykonywania skryptów od szóstej wersji Flasha. Mianowicie: always zezwala na wykonywanie wszystkich skryptów, never nie zezwala, a samedomain pozwala tylko na te dostępne w obrębie poruszanej się domeny.
Ponieważ, jak już pewnie zauważyliście wewnątrz najbardziej zagnieżdżonego znacznika
objectmożna (lecz oczywiście nie trzeba!) umieścić po jego parametrach alternatywnie wyświetlany kod to w naszym przykładzie wyświetlimy w takim wypadku grafikę o takich samych rozmiarach.<object type="application/x-shockwave-flash"
data="skompilowany_flash.swf"
style="width: 1024px; height: 768px;">
<param name="movie"
value="skompilowany_flash.swf" />
<param name="quality"
value="best" />
<img src="zastepcza_grafika.png"
style="width: 1024px; height: 768px;"
alt="Brak pluginu Flash" />
</object>Powyższy przykład będzie poprawny dla kodu XHTML. Dla czystego HTML-a należy formę zminimalizowaną parametrów oraz opcjonalnej grafiki ( />) zamienić na tradycyjną, bądź w ogóle tych znaczników nie zamykać.
Zapraszam do przejrzenia przykładu implementacji metody.

Rozwiązanie problemów z ładowaniem dużych plików
W wypadku klipów o sporej wadze powyższa metoda ma jeden mankament. Dopóki plik nie zostanie w całości załadowany animacja nie zostanie odtworzona.
Można temu zapobiec tworząc prosty loader, także korzystając z Flasha. Tworząc nowy dokument (rozmiary mogą być minimalne, np. 10x10px) wystarczy w jego pierwszej klatce dodać następujący kod ActionScript:
var fileName = _root.path;
if ( -1 == fileName.indexOf("%25") && fileName != "" )
{
_root.loadMovie(fileName + ".swf", 0);
}Przy eksporcie do pliku wymagane jest, aby dokonywać go korzystając z ActionScript 1.0 (AS), a w opcji Local playback security: należy wybrać Access local files only. Archiwum z plikiem źródłowym i wynikowym znajduje się tutaj.
Dla nowszych AS, na przykład trójki powyższy przykład nie zadziała. Należy posłużyć się za to klasą
Loader.var path:String = new String();
path = ( root.loaderInfo.parameters.path ? root.loaderInfo.parameters.path : "" );
if ( -1 == path.indexOf("%25") && path != "" )
{
var loader:Loader = new Loader();
loader.load(new URLRequest(path + ".swf"));
addChild(loader);
}Na koniec zostaje jeszcze jedna zmiana do wykonania. W znaczniku
objectoraz w jego parametrach należy zmienić ścieżki do pliku naloader.swf?path=skompilowany_flash(bez rozszerzenia). Oczywiście w tym wypadku obydwa pliki muszą znajdować się w jednym i tym samym katalogu.<object type="application/x-shockwave-flash"
data="loader.swf?path=skompilowany_flash"
style="width: 1024px; height: 768px;">
<param name="movie"
value="loader.swf?path=skompilowany_flash" />
<param name="quality"
value="best" />
<img src="zastepcza_grafika.png"
style="width: 1024px; height: 768px;"
alt="Brak pluginu Flash" />
</object>Zastępcze sposoby oparte na JavaScriptcie i komentarzach warunkowych...
Jeżeli Twoim audytorium mają być osoby korzystające z czytników ekranowych (JAWS) to cały mój wywód poszedł na marne, bo po prostu nie zadziała. Nie zostawię Was jednak na lodzie. Wystarczy skorzystać z jednego z poniższych rozwiązań.
Pierwsze, SWFObject 2.1 ogranicza się do pobrania pliku klasy, wprowadzenia opcjonalnych zmiennych i wywołania metody wraz z argumentami która przypisze wynik do elementu o odpowiednim ID. Niestety wymaga włączonej obsługi JavaScript w przeglądarce użytkownika. Pełnej dokumentacji można zasięgnąć tutaj.
<head>
[...]
<script type="text/javascript" src="swfobject.js"></script>
<!-- parametry swfobject.embedSWF: plik, ID_bloku, szerokosc, wysokosc, minimalna_wersja_flasha [, odnośnik_do_ekspresowej_instalacji, zmienne_flasha, parametry, atrybuty ]; -->
<script type="text/javascript">
var flashvars = false;
var attributes = {
id: "flashContent"
}
var params = {
menu: "false",
quality: "medium"
};
swfobject.embedSWF("skompilowany_flash.swf", "zawartosc", "640", "480", "8.0.0.0", false, flashvars, params, attributes);
</script>
[...]
</head>
<body>
<div id="zawartosc">
Alternatywny tekst.
</div>
</body>Na podobnej zasadzie działa Unobtrusive Flash Objects. Została ona jednak oficjalnie uznana za przestarzałą na rzecz wcześniej opisanego rozwiązania.
Drugi sposób zagnieżdżania oparty jest na ukrytych komentarzach warunkowych. Nested Objects, bo o nim mowa pozwala na określenie jakie przeglądarki nie powinny korzystać z kluczowego w tym wpisie sposobu. W przykładzie przeglądarki IE nie będą mogły używać rozwiązania opartego na Flash Satay.
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"
style="width: 1024px; height: 768px;">
<param name="movie" value="skompilowany_flash.swf" />
<param name="quality" value="high" />
<!-- poczatek: kod z tego bloku nie zostanie wykonany w przegladarkach IE -->
<!--[if !IE]><!-->
<object data="skompilowany_flash.swf"
type="application/x-shockwave-flash"
style="width: 1024px; height: 768px;">
<param name="quality" value="high" />
<param name="pluginurl" value="http://www.macromedia.com/go/getflashplayer" />
<!--<![endif]-->
<!-- koniec -->
<img src="zastepcza_grafika.png"
style="width: 1024px; height: 768px;"
alt="Brak pluginu Flash" />
<!-- poczatek: kod z tego bloku nie zostanie wykonany w przegladarkach IE -->
<!--[if !IE]><!-->
</object>
<!--<![endif]-->
<!-- koniec -->
</object>Oczywiście odpowiednio modyfikując ujęte w kodzie komentarze warunkowe możemy manipulować tym która przeglądarka, które rozwiązanie będzie mogła stosować.
Podsumowując...
Na pewno buszując po otchłaniach Internetu spotkalibyście jeszcze kilka innych, mniej lub bardziej profesjonalnych rozwiązań. Pomimo, że te które tym razem zaprezentowałem działały bez większego zająknięcia na Operze 9.62, Firefoksie 3.0.4, Safari 3.2, a nawet na diabelnie niepokornym Internet Explorerze 7 to chociażby dla pogłębienia swojej wiedzy warto się zainteresować pozostałymi metodami.
Oczywiście wykorzystanie
objectiparamnie musi tylko i wyłącznie służyć do obsługi Flasha. Operowanie na filmach, muzyce, czy grafice to tylko przykłady możliwości tych znaczników. Wystarczy poeksperymentować i zapamiętać jedną rzecz...embedod dziś odchodzi w niepamięć...copyright © 2008, m1chu
udostępnione na licencji CC dla vivee.info i m1chu.eu
Tagi:actionscript, embed, Flash, flash satay, html, javascript, komentarze warunkowe, nested objects, object, param, swfobject, xhtml
-
22 Responses to “Jak poprawnie osadzić Flasha w kodzie (X)HTML strony?”
Leave a Reply
Komentarze
Kategorie
Top 10
bal intermobil: Jak stworzyć stronę za pomocą xhtml oraz css
alan27pbll: Query_posts, czyli jak ujarzmić loopa część 1.
alan27pbll: Query_posts, czyli jak ujarzmić loopa część 1.
Michał: Inspirujące strony www: wrzesień 2010
czi: Gravatar, czyli jak mieć globalnego avatara
learn italian online: Query_posts, czyli jak ujarzmić loopa część 1.
hotelpalermo: Jak poprawnie osadzić Flasha w kodzie (X)HTML strony?
Michał: jQuery Cycle
Windscreen: Inspirujące strony www: wrzesień 2010
EMAAR MGF GURGAON: Query_posts, czyli jak ujarzmić loopa część 1.
- CMSy Artykuły dotyczące różnego rodzaju systemów zarządzania treścią CMS.
- Flash Podstawowe informacje pomocne przy tworzeniu animacji w Adobe Flash.
- Fotografia Samouczki dotyczące nie tylko robienia zdjęć ale też ich cyfrowej obróbki.
- Grafika Ogólnie pojęta grafika komputerowa, od inspiracji, po tworzenie layoutów oraz mniejszych form graficznych.
- Inne tutoriale wordpressowe Wszystkie inne zagadnienia dotyczące WordPressa.
- Inspiracje Inspirujące materiały graficzne z dziedziny projektowania stron www, projektów DTP, digital painting, itp.
- Obróbka zdjęć Techniki retuszu fotografii cyfrowych.
- Rysunek Tworzenie rysowanych ilustracji w Adobe Photoshop.
- Skóry do Wordpressa Darmowe oraz płatne – najlepsze skóry do WordPressa.
- Skrypty client-side
- Skrypty server-side
- Tutoriale
- Webdesign Tutoriale z zakresu projektowania stron www i grafiki użytkowej na rzecz internetu.
- Wieczór z Open Source
- Wordpress Ulubieniec naszej publiczności CMS WordPress: nowości, tricki, wtyczki, skóry i wszystko to co może przydać się przy korzystaniu z tego systemu.
- Wtyczki do Wordpressa Recenzje oraz instrukcje najbardziej popularnych i najbardziej niezbędnych pluginów do WordPressa.
- XHTML/CSS Ciekawostki z dziedziny kodowania stron www: XHTML, CSS, jQuery.
- Rozwijane menu na szybko
- Jak poprawnie osadzić Flasha w kodzie (X)HTML strony?
- Vivee Wordpress Themes
- Krótko o... Wordpress 2.7
- Inspiracje: Digital Painting
- Inspirujące plakaty - grudzień 2008
- Własny theme w Gelato
- "Step forward" - czyli podstawy fotomontażu
- Inspirujące strony www - listopad 2008
- Poszukujemy speca od wiki
Najnowsze newsy
Wieczór z Open Source 2010
Jak co roku WSINF organizuje konferencję Wieczór z Open Source.
Chciałbym zaprosić was na tegoroczna konferencję Wieczór z Open Source 2010! Czytaj dalej
Grafart.org i WACOM zapraszają na konkursy!
Witam!
Myślę, że czas najwyższy nadmienić, że za niedługi czas zostanie zorganizowany pierwszy z trzech konkursów, w których główną nagrodą będą tablety firmy WACOM!
Za miejsca drugie oraz trzecie nagrodami będą kubki i koszulki firmy WACOM oraz magazyny graficzne PSD PHOTOSHOP oraz COMPUTERARTS.
Czytaj dalej
Zapraszamy na forum graficzne Graffika.pl
Każda osoba interesująca się grafiką komputerową ma czasami ochotę porozmawiać o swoich pracach, posłuchać rad, krytyki i pochwał innych osób. Idealnym miejscem na realizowanie takich potrzeb jest forum graficzne Graffika.pl.
Czytaj dalej
Polecane strony
- No bookmarks avaliable.























Dobry artykuł. Gratuluje
Poprawcie proszę wyświetlanie kodu w treści wpisu bo bez okularów ciężko coś tu przeczytać
A w czym konkretnie jest problem? Mówię jako kret zupełny. Uprzedzam z góry, żeby moje kompetencje jako ślepca nie zostały podważone.
Może o to, że nie ma kolorowania składni dla HTML/XHTML? :>
Jak dla mnie wszystko jest ok, krój wyraźny, kolory w kodzie są (czarno-czerwono-niebieskie). Osobiscie nie mam zadnych uwag co do wyswietlania zawartosci wpisow, mimo, że tez jestem kretem
Okazało się, że to chrom tak głupio tylko to wyświetla.
Rzeczywiscie, Chrome zmniejsza wielkosc liter.
Teraz już jest ok
http://www.webhosting.pl/Jak.poprawnie.osadzic.Flasha.w.kodzie.XHTML.strony
TurboPtysiu czy podanie linka miało coś znaczyć?
M1chu – gratuluję, żeś na webhostingu wylądował. Coś tylko widzę teksty tam się krzaczą w wielu miejscach, szczególnie po fragmentach kodu dalej zostaje szeryfowa.
Właśnie, też chciałbym wiedzieć co ten link ma znaczyć?
Żeby nie było. Jest to treść syndykowana automatycznie na WH z mojego bloga. Więc nie mam wpływu na to jak zostaną one tam wyświetlone, bo nie umieszczam ich tam “ręcznie”
Za gratulację dziękuje, pomimo że jeszcze nic tam nie napisałem praktycznie (prócz jednego wpisu) ;]
Dziękuje, artykuł wyczerpujący, fajnie napisany- na pewno się przyda.
Proszę bardzo, cała przyjemność po mojej stronie. Zapewniam, że znajdziesz na Vivee o wiele więcej ciekawych tematów, i teraz, i w przyszłości. Dlatego zapraszam do subskrybowania nowości :]
Czytam na twitterze
zapraszam do siebie
mój błąd, nie wiedziałem, że wh jest agregatorem treści z internetu, myślałem, że mają oni swój sztab blogerów i że może jakiś plagiat sobie ktoś urządza, …ale już rozumiem
artykuł bardzo fajny i przejrzyście napisany
a odnośnie serwisu, to w ostatnim czasie jakoś mało nowych artykułów się pojawia,
życzę wam jak najlepiej i wierzę, że będzie dobrze bo odpowiada mi forma serwisu
heya
TurboPtyś – gdybysmy nie pracowali i nie studiowali to na pewno byłoby więcej rzeczy, ale musimy pogodzić ze sobą wiele aspektów szarego życia i robimy co mozemy żeby na vivee co jakis czas pojawiało się coś ciekawego.
TurboPtyś, ukazując rąbka tajemnicy – osoba podpisana pod treścią na WH i tutaj to ta sama osoba. Ja
A taki myk należy dodać w przypadku flasha bez tła.
A mam takie pytanie odnośnie IE n-tej wersji 6. Przy osadzeniu za pomocą SWFObject 2 pojawia się szara ramka. Musiałem więc skorzystać z wycofanej SWFObject 1, i wtedy ramki nie bylo. Czy ktos zetknal sie z tym problemem?
Dla mnie to żaden problem, ale niektórzy korzystają tylko z “jedynej słusznej przeglądarki” ;/
[...] osadzić Flasha w kodzie (X)HTML strony? | Vivee – wordpress, webmastering, grafika i fotografia vivee.info/…prawnie-osadzic-flasha-w-… Pokaż reakcje /* */ inne strony z tej witryny + obserwuj co [...]
Witam. Długo czytałem wszystko co jest tu zamieszczone i mam małe pytanko.
Jak zmienić stronkę, która jest we fleszu na HTML.
Czy istnieje taka opcja. Oto moja strona http://www.video-foto-kris.pl
Wyczytałem gdzieś, że można stworzyć stronę w HTML nie różniącą się od tej we FLESZU. Podobno umieszczona tam treść jest dla GOOGLE a konkretnie dla robota. Ma służyć głównie do pozycjonowania i z tego co wyczytałem ma za zadanie wyświetlać się dla tych potencjalnych klientów, którzy nie będą w stanie otworzyć tej we fleszu.
Będę wdzięczny za informacje.
Pozdrawiam.
Józek
Bardzo dobry artykuł!
Awesome things here. I am very happy to look your article. Thank you so much and I’m looking forward to touch you. Will you kindly drop me a mail?