Wykrywanie obecności plugina Flash

Autor: Tomasz Sieniek, dodano: 26-07-2003
Kategoria: Programowanie i tworzenie

Przy tworzeniu stron internetowych, ważną rzeczą jest aby tworzona witryna była tak skonstruowana, aby każdy użytkownik wchodzący na nią mógł skorzystać z zawartych tam informacji.

Jeżeli nasza strona doskonale prezentuje się na ekranie naszego komputera - nie oznacza to wcale, że tak samo będzie wyglądać u innych użytkowników; wynikać to może z następujących różnic, a mianowicie: konfiguracji sprzętu, systemu operacyjnego, uzywanej przeglądarki, a w przypadku flasha, od obecności bądź braku odpowiedniego Plugina.

Jedno jest pewne: Film Flasha widziany jest jednakowo we wszystkich systemach operacyjnych i różnych przeglądarkach pod jednym warunkiem - w systemie mamy zainstalowaną odpowiednią wersję nieszczęsnego Plug-in'a.
Pierwszym krokiem , który wykonamy będzie zatem sprawdzenie obecności i wersji plug-ina Flasha. Aby to osiagnąć posłuzumy się językiem JavaScript, obecnie akceptowanym przez wszystkie przeglądarki. Kod który będzie sprawdzał czy jest zainstalowany odpowiedni Plug-in wygląda następująco:


navigator.mimeTypes["application/x-shockwave-flash"]



Jeżeli powyższa instrukcja zwróci nam wartosć TRUE będziemy wiedzieć, że Plugin jest zainstalowany, w przeciwnym wypadku zwróconą wartością będzie FALSE.


if (parseInt(plugin.description.substring (plugin.description.indexOf(".")-1))>=5)



Powyższy fragment kodu sprawdza nam natomiast wersję Flasha (czy jest ona wyższa lub równa 5).

Zastosujmy więc powyzsze linie kodu na naszej stronie HTML:

var Flash = 0;
if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) {
if (parseInt(plugin.description.substring
(plugin.description.indexOf(".")-1))>=5)
Flash = 1;
}



Skrypt który właśnie napisaliśmy kontroluje najpierw czy plugin jest obecny w systemie, a następnie sprawdza jego wersję. Jeżeli wersja jest wyższa lub równa 5 zmienna Flash przybiera wartość równą jeden. Póżniej wyjaśnimy co zrobić z wartością tej zmiennej.

Ważną rzeczą jest to abyśmy mieli również świadomość jakiej przeglądarki używa osoba oglądająca naszą stronę. W przypadku IE w momencie kiedy chcemy wczytać objekt Flasha zawarty między znacznikami OBJECT jeżeli brak jest odpowiedniego plugina zostanie on automatycznie załadowany ze strony producenta. Tak więc w tym przypadku nie musimy właściwie przejmować się całą sprawą...
W przypadku Netscape'a po tym jak sprawdzimy obecność plugina lub jego brak możemy wybrać kilka opcji:

1) Zamiast filmu Flasha wstawić obrazek

W tym celu jak zwkle wstawiamy cod OBJECT, natomiast w miejscu tagów EMBED wstawiamy kod:

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/
shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
WIDTH=550 HEIGHT=400>
<PARAM NAME=movie VALUE="film.swf">
<PARAM NAME=quality VALUE=high>

<SCRIPT LANGUAGE="JavaScript">
var Flash = 0;
if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) {
if (parseInt(plugin.description.substring
(plugin.description.indexOf(".")-1))>=5) {
Flash = 1;
}
}

if (Flash) {
document.write('<EMBED src="film.swf"
quality=high WIDTH=550
HEIGHT=400 TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/shockwave/
download/index.cgi?P1_Prod_Version=
ShockwaveFlash"></EMBED>');
} else {
document.write('<IMG SRC="obrazek.gif"
WIDTH="220" HEIGHT="110">');
}
</SCRIPT>
</OBJECT>




Za pomocą tego skryptu kontrolujemy obecność plugina, rezultat zostaje przekazany za pomocą zmiennej Flash. Jeżeli wartość Flash wynosi 1 (plugin jest OK.) i zostanie wyświetlony film, w przeciwnym wypadku w miejscu gdzie miał być movieclip zostanie wyswietlony obrazek. Skrypt ten możemy oczywiście dostosować do swoich potrzeb wyswietlając zamiast obrazka dowolny tekst, informujący np. o tym, iż uzytkownik nie ma zainstalowanego odpowiedniego plugina.

2) Otworzyć nową stronę, która nie zawiera elementów wykonanych we Flashu.

W tym wypadku musimy stworzyć dwie odrębne strony. Jeżeli użytkownik posiada Plugin - zostanie automatycznie załadowana wersja Flash, jeżeli natomiast nie zostanie przekierowany do wersji HTML.

<SCRIPT LANGUAGE="JavaScript">
var Flash = 0;
if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] ) {
if (plugin && parseInt(plugin.description.substring
(plugin.description.indexOf(".")-1))>=5)
Flash = 1;
} else if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 &&
navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
Flash = 1;
}

if (Flash) {
window.location='flash.html';
} else {
window.location='noflash.html';
}
</SCRIPT>



W powyższym skrypcie sprawdzamy również czy uzytkownik ma wersję windowsa wyższą niż 3.1, gdyż nie rozpoznaje on znaczników <OBJECT> Po wszystkich kontrolach stosujemy przekierowanie do żądanej strony za pomocą instrukcji: window.location.

Ocena 2.59/5 (51.77%) (299 głosów)

Komentarze:

  • Błędy
    Dodał: Pioxtex data: 2018-06-11
    Nie znane są zmienne jak np plugin...


Dodaj komentarz:


Temat:
Twój nick:
Komentarz:
 

Prosimy o kulturę wypowiedzi. Komentarze zawierające niecenzuralne zwroty, bądź obrażające inne osoby będą usuwane. Kod HTML w wypowiedziach jest niedozwolony. Wydawca nie odpowiada za treść komentarzy.