przekierowanie 26DEXWQR3TAEBL5GX7K6FOQAEIDH6SOFH566CJQ











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 CX
przekierowanie (2)
MikroTik czasowe przekierowanie dla niepłacących v2
MikroTik przekierowanie dla niepłacących
Przekierowanie portów na platformie MikroTik
Przekierowanie portow na okreslony adres ip
Przekierowanie portow w routerze podstawy
MikroTik czasowe przekierowanie dla niepłacących v1

więcej podobnych podstron