Artykuł ukazał się drukiem w Magazynie INTERNET

Więcej informacji dotyczących sposobów tworzenia stron opartych o DHTML znajdziesz pod adresem:
http://www.szewo.com/dhtml.



go to: main / publications /

Sposoby nawigacji w serwisie internetowym


Podstawowym zadaniem twórcy serwisu internetowego jest zorganizowanie sprawnego i czytelnego dla użytkownika systemu nawigowania po poszczególnych stronach.

Nowe przeglądarki internetowe udostępniają szerokie możliwości manipulowania odsyłaczami, które są elementarnymi elementami dokumentu hipertekstowego. Aby umożliwić użytkownikowi jak najszybsze znalezienie szukanej przez niego informacji tworzy się bardziej lub mniej skomplikowane spisy treści i indeksy.

Tworzenie dynamicznego menu

Nawigowanie po stronach internetowych za pomocą menu, które wykorzystuje możliwości dynamicznego tworzenia stron jest często znacznie bardziej wygodne dla użytkownika niż tradycyjne "statyczne" odsyłacze. Tworzenie serwisów internetowych w oparciu o takie rozwiązania umożliwia także wykorzystanie ciekawszej kompozycji graficznej witryny.
Jeden z pomysłów realizacji systemu umożliwiającego poruszanie się po stronach WWW został zastosowany na stronie, której kod przedstawia się następująco:

<html>
<head>
<style>
#menu_1,
  #menu_2{position:absolute;left:-110px;width:130px;
top:20px;border:3px solid white;background-color:silver;
layer-background-color:silver;font:bold 12px Arial;} </style> </head> <body bgcolor=navy> <script> //dla Internet Explorera if (document.all) document.write('<div id="menu_2" style="left:-110"
onMouseover="show()" onMouseout="hide()">') </script> <!-- warstwa z naszym ruhomym menu --> <layer id="menu_1" onMouseover="show()" onMouseout="hide()"> <script> //tablica przechowujaca nazwy odnosnikow var linkName=new Array() linkName[0]="Strona główna" linkName[1]="Strona 1" linkName[2]="Strona 2" linkName[3]="Strona 3" linkName[4]="Strona 4" linkName[5]="Strona 5" //tablica przechowujaca ondosniki var lLinks=new Array() lLinks[0]="main.html" lLinks[1]="strona1.html" lLinks[2]="strona2.html" lLinks[3]="strona3.html" lLinks[4]="strona4.html" lLinks[5]="strona5.html" //wyswietlenie odsylaczy na warstwie for (i=0;i<=linkName.length-1;i++) document.write('<a href='+lLinks[i]+'>'+linkName[i]+ '</a><br>') </script> </layer> <script> //w przypadku Internet Explorera if (document.all) { document.write('</div>') menuLink=document.all.menu_2.style right=20 left=-110 } else { menuLink=document.layers.menu_1 right=110 left=20 } //dla pokazanie menu function show() { if (window.hideT) clearInterval(hideT) showT=setInterval("show1()",60) } //dla ukrycia menu function hide() { clearInterval(showT) hideT=setInterval("hide1()",60) } //pokazywanie menu function show1() { if (document.all&&menuLink.pixelLeft<right) menuLink.pixelLeft+=3 else if(document.layers&&menuLink.left<right) menuLink.left+=3 else if (window.showT) clearInterval(showT) } //ukrywanie menu function hide1() { if (document.all&&menuLink.pixelLeft>left) menuLink.pixelLeft-=3 else if(document.layers&&menuLink.left>left) menuLink.left-=3 else if (window.hideT) clearInterval(hideT) } </script> <!-- DALSZA ZAWARTOSC STRONY --> </body> </html>
Zawarty na stronie skrypt buduje dynamiczne menu z odsyłaczami, których nazwy i adresy przechowywane są w tablicach linkName i linkAdr. Ponieważ organizacja warstw w różnych przeglądarkach jest nieco inna (patrz MI 5/99) wykorzystano zagnieżdżony znacznik <LAYER>.
Po wskazaniu kursorem myszy widocznego na ekranie monitora fragmentu warstwy wywoływana jest - za pomocą procedury obsługi zdarzeń onMouseover - funkcja wyświetlająca menu Show(). Procedura onMouseout jest wykorzystywana przy ukrywaniu menu - funkcją Hide().Do manipulacji naszym menu wykorzystywana jest funkcja setInterval(..) języka JavaScript, która umożliwia nadanie obiektowi płynnego ruchu. W efekcie widoczny jest tylko margines prostokąta, który jest naszym menu, a na życzenie użytkownika wysuwa się cała lista dostępnych odsyłaczy.

Lista odsyłaczy strony WWW

Produkty Netscape'a i Microsoftu umożliwiają użytkownikowi dostęp do specjalnego zbioru zawierającego wszystkie zastosowane na danej stronie odsyłacze. Przeanalizujmy poniższy skrypt:

<script>
//czy mamy przegladarka to Internet Explorer?
var ifie4 = (document.all!=null) 

//funkcja sporzadazajaca liste odsylaczy
function makeList() 
{
 var linkList = ""
 //wykorzystujemy rozmiar tablicy 'links'
 for (var i = 0; i < document.links.length; i++) 
 {
  var oneLink = document.links[i]
  if (ifie4)  
   linkList += oneLink.outerHTML + "<BR>" 
  else
  if (oneLink.text!=null)  
   linkList += "<A HREF=\""+oneLink.href+"\">"+ 
      oneLink.text + "</A><BR>"
  }
 return linkList     
}
	
//funkcja wyswietlajaca liste na ekranie	
function printList() 
{
 // wykrycie przegladarki
 if (parseInt(navigator.appVersion)>=4) 
 { 
  line = "<DIV ID=zbiorL>"
  //dla przegladarki Microsoftu
  if (ifie4)
   window.onload = 
      new Function("document.all.zbiorL.innerHTML = 
         makeList()")
   //dla Netscape'a
  else
   line += makeList()
  line += "</DIV>"
  document.write(line)
 }
}
</script>

Funkcja makeList() tworzy listę odnośników zawartych na stronie WWW (dane przechowywane są w tablicy). Analizując kod funkcji łatwo zauważyć, że przeglądarki Netscape'a i Microsoftu w tablicy przechowującej informacje o wszystkich odsyłaczach zawierają nieco różne informacje - Netscape przechowuje nazwę odsyłacza, a Explorer przechowuje cały odnośnik. W przeglądarce Microsoftu - w przeciwieństwie do produktu Netscape'a - elementy listy odnośników mogą zawierać znaczniki języka HTML. Zatem na stronie internetowej, która zawiera różne typy znaczników tekstowych i graficznych wyświetlana za pomocą naszego skryptu lista może prezentować się w różny sposób - zależny od programu. W Internet Explorerze będzie zawierała także obrazki i elementy formatowania, a w przeglądarce Netscape'a tylko odnośniki tekstowe, które nie zawierają znaczników HTML. Na przykład odsyłacz:

<a href="index.html">Zobacz <b>moją stronę</b> 
   prywatną</a> 
nasz skrypt w Internet Explorerze wyświetli uwzględniając zagnieżdżony znacznik . W przeglądarce firmy Netscape wyświetli tylko ostanie słowo naszego odnośnika (przeglądarka w liście odnośników uwzględnia tylko tekst zawarty za występującym znacznikiem).
Funkcja printList() odpowiada za wyświetlenie na ekranie listy.
Wykorzystując powyższy skrypt na stronie WWW otrzymujemy w żądanym miejscu listę wszystkich zawartych na niej odsyłaczy. Można w ten sposób tworzyć systemy nawigacji po stronach serwisów internetowych oraz jednolite menu.

Przed przystąpieniem do tworzenia serwisu internetowego należy dobrze przemyśleć jego organizację, czyli zasady przemieszczania się po poszczególnych jego stronach. Opanowanie możliwości manipulowania odsyłaczami w nowych przeglądarkach może przynieść bardzo ciekawe efekty zarówno wizualne, jak i czysto praktyczne. Należy pamiętać, że szybkość i prostota dotarcia do informacji powinny być celem podstawowym każdego webmastera.