JavaScript w przykładach - Przekierowanie w zależności od przeglądarki
JavaScript
w przykładach
http://javascript.jest.o.k.pl
Przekierowanie w zależności od przeglądarki
Czasem niektórzy chcą przygotować klika wersji tej samej strony - dla różnych przeglądarek i/lub różnych rozdzielczości ekranu. Trzeba jednak jakoś skierować odwiedzającego na stronę przeznaczoną właśnie dla niego - można po prostu umieścić na stronie kilka odsyłaczy, można też sprawdzić potrzebne dane za pomocą skryptu i zastosować automatyczne przekierowanie.
Ten skrypt ma uprościć wykonanie takiego rozpoznawania.
Instrukcja
W nagłówku dokumentu umieszczamy następujący kod
<script language="JavaScript" type="text/javascript">
<!--
// Niniejszy skrypt pochodzi z serwisu "JavaScript w przykladach"
// Copyright (C) 1999 Maciej Szczepaniak <maciek@wls1.ch.pwr.wroc.pl>
// Skrypt objety jest licencja GNU General Public License.
// Koniecznie przeczytaj pelna informacje o licencji pod adresem:
// http://javascript.jest.o.k.pl/archiwum.html#l
// Zmienne identyfikujace przegladarke:
var nazwa = navigator.appName;
var ekran = (typeof(screen)=="object") ? screen.width : null;
var wersja = parseFloat(navigator.appVersion);
var msie = nazwa == "Microsoft Internet Explorer";
var nn = nazwa == "Netscape";
var inna = !(msie || nn);
if (msie) {
// Jesli to MSIE, to wersja zostala zle rozpoznana.
var ws = navigator.appVersion;
wersja = parseFloat(ws.substring((ws.indexOf("MSIE") + 5 ),ws.length));
}
function go(gdzie) {
window.location = gdzie
}
// Tu umiesc instrukcje przekierowania:
//-->
</script>
- Przed odczytaniem szerokości ekranu trzeba sprawdzić, czy obiekt screen jest dostępny - nie istnieje on w Netscape'ach starszych niż 4.0. Stąd wyrażenie warunkowe, a w nim sprawdzenie typu zmiennej (operator typeof()).
- Do zmiennej wersja wpisywana jest wersja przeglądarki jako liczba ułamkowa - dzięki temu przy porównaniach 5.01 będzie większe niż 5.0 (przypadku zastowowania stringów byłoby odwrotnie). W przypadku IE wersję trzeba rozpoznawać specjalnie - np. w przypadku MSIE 5.01 pole navigator.appVersion ma wartość 4.0 (compatible; MSIE 5.01; Windows 98) .
Skrypt ustala wartości kliku zmiennych, dzięki którym przekierowanie sprowadza się do napisania kliku prostych instrukcji. Do zmiennej nazwa wpisywana jest... nazwa przeglądarki, ekran oznacza szerokość ekranu (w pikselach), wersja to wersja przeglądarki, jako liczba. Ustalane są też 3 flagi logiczne, stwierdzające której przeglądarki używa odwiedzający: msie, nn lub inna. Warto jednak zauważyć, że mało popularne przeglądarki (np. Opera) często podszywają się pod IE lub NN, więc nie zostaną rozpoznane jako inna.
Na końcu skryptu należy umieśić instrukcje warunkowe odpowiednio przekierowujące użytkownika - przyda się tu zdefniowana wcześniej funkcja go(). Kombinacji jest wiele, oto przykłady:
//przyklad 1 - prosty wybor:
if (msie) go('ie.html')
else if (nn) go('nn.html')
else go('reszta.html')
//przyklad 2 - wg. rodzielczosci:
if (ekran<=640) go('male.html')
else if (ekran>=1024) go('duze.html')
else go('srednie.html')
//przyklad 3 - kiedy wazna jest wersja:
if (msie && wersja>=5) go('kicksass.htm')
else if ((msie && wersja>=4) || (nn && wersja>=4.5)) go('cool.htm')
else go('plainoldboringstuff.htm');
//przyklad 4 - duze wymagania:
if (msie && wersja>=5 && ekran>=1200) go('/prezentacja.html')
else go('javascript:alert("Nie masz tu czego szukac!")')
Trzeba oczywiście pamietać, że istnieją przeglądarki, które nie obsługują JavaScriptu. Oprócz tego może się okazać, że skrypt nie zadziała zgodnie z oczekiwaniami w jakiejś konkretnej sytuacji - zawsze więc trzeba na stronie przekierowującej oprócz skryptu umieścić zwykłe linki, które umożliwią wszystkim bez wyjątku zapoznanie się z zawartością strony.
[ Powrót na górę ]
Przykład
W zasadzie nie jest to przykład działania samego skryptu: poniżej wypisane są wartości, jakie skrypt ustali dla poszczególnych zmiennych w przypadku przeglądarki, której właśnie używasz:
[ Powrót na górę ]
Szybki skok:
Instrukcja
Przykład
JavaScript:
Teoria
Przykłady
Licencja
Bannery:
- w pasku stanu
- w okienku
- w pasku tytułu
- na przycisku
- Dalekopis
Nawigacyjne:
- Aktywny przycisk
- Przekierowanie
- Replace
Podpowiadacze:
- Pasek stanu DHTML
- Dymki DHTML
- Podmiana grafiki
Cegiełki:
- Zegarek
- Losowy tekst
- Odliczanie do Y2K
Inne:
- Pogromca ramek
- Preload
- Inteligentny dialog
Warsztat
JS w akcji
Linki
O autorze:
E-mail
Strona domowa
Znajdź w JSwp:( Jak szukać? )
Aby otrzymywać informacje o aktualizacjach na tych stronach, podaj swój e-mail:
Wersja offline
© 1998-2000 Maciej Szczepaniak
Wyszukiwarka
Podobne podstrony:
Przekierowanie portow CXprzekierowanie (2)MikroTik czasowe przekierowanie dla niepłacących v2MikroTik przekierowanie dla niepłacącychPrzekierowanie portów na platformie MikroTikPrzekierowanie portow na okreslony adres ipPrzekierowanie portow w routerze podstawyMikroTik czasowe przekierowanie dla niepłacących v1więcej podobnych podstron