Uwa┐niejszy webmaster na pewno ju┐ sobie poradzi│ z konstrukcj▒ strony, zerkaj▒c po prostu do jej ╝r≤d│a i wyci▒gaj▒c plik spisu tre╢ci z cache'a przegl▒darki. Dla lepszego zobrazowania problemu pos│u┐my siΩ przyk│adem tego dodatku.
Autorom wykorzystuj▒cym HTML Help ActiveX sugerujΩ pos│ugiwanie siΩ kompilatorem HTML Help Workshop, gdy┐ po prostu │atwiej jest ustaliµ niekt≤re parametry spisu tre╢ci, choµ praca z Workshopem potrafi byµ niekiedy mocno stresuj▒ca, na skutek jego rozmaitych niedor≤bek.
Podstaw▒ konstrukcji tej strony jest oczywi╢cie uk│ad ramek:
<frameset rows="100%" cols="27%,*" frameborder="no"> <frame name="left" src="spis.htm" scrolling="auto"> <frame name="right" src="wstep.htm" scrolling="auto"> </frameset>
Lewa ramka nazywa siΩ "left", za╢ prawa - "right". Nazwy s▒ istotne dla spisu tre╢ci.
W lewej ramce, w ramach BODY, umieszczone jest polecenie OBJECT, kt≤re wywo│uje HTML Help ActiveX:
<OBJECT id=hhctrl type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" codebase="hhctrl.ocx#Version=4,73,8561,0" width=100% height=90% > <PARAM name="Command" value="Contents"> <PARAM name="Item1" value="kurshtml.hhc"> <PARAM name="Flags" value="0x0,0x17"> </OBJECT>
Uwaga: u niekt≤rych u┐ytkownik≤w mo┐e siΩ pojawiµ konflikt miΩdzy posiadan▒ w komputerze i zadeklarowan▒ wersj▒ hhctrl.ocx. Aby jej unikn▒µ, mo┐emy podawaµ w poleceniu codebase
CODEBASE="http://activex.microsoft.com/controls/htmlhelp/hhctrl.ocx"
Warto╢µ Contents informuje, ┐e polecenie dotyczy spisu tre╢ci, kt≤ry jest reprezentowany w tym miejscu przez odrΩbny plik kurshtml.hhc. Warto╢ci width i height m≤wi▒, jaki procent ekranu (w ramce, rzecz jasna) zajmuje spis, a w│a╢ciwie ca│y obiekt. Warto╢ci Flags s▒ ustalane w trakcie tworzenia spisu w HTML Help Workshop - trudno je ustalaµ rΩcznie, st▒d w│a╢nie lepsze jest u┐ycie kompilatora. Ja sam przyj▒│em, ┐e spis ma bia│e t│o i jest rozwijany m.in. za pomoc▒ kratek z plusami. T│o tej strony tak┐e jest bia│e, wskutek czego spis wtapia siΩ w stronΩ.
Przytoczmy teraz postaµ pliku ze spisem, czyli kurshtml.hhc, wygenerowanego przez HTML Help Workshop. Jest to oczywi╢cie plik tekstowy HTML. Dla uproszczenia zostawiamy tylko po jednej pozycji na rozmaitych poziomach tego spisu.
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <HTML> <HEAD> <meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1"> <!-- Sitemap 1.0 --> </HEAD><BODY> <OBJECT type="text/site properties"> <param name="FrameName" value="right"> <param name="Window Styles" value="0x5"> <param name="ImageType" value="Folder"> </OBJECT> <UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="WstΩp"> <param name="Local" value="wstep.htm"> <param name="FrameName" value="right"> <param name="ImageNumber" value="17"> </OBJECT> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="HTML"> <param name="FrameName" value="right"> </OBJECT> <UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="HTML dla bardzo pocz▒tkuj▒cych"> <param name="Local" value="..\beginner\beginner.htm"> <param name="FrameName" value="right"> <param name="ImageNumber" value="11"> </OBJECT> </UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="Lupus Online"> </OBJECT> <UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="PCkurier"> <param name="Local" value="http://www.pckurier.pl"> <param name="FrameName" value="right"> <param name="ImageNumber" value="13"> </OBJECT> </UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="Wyszukiwarki internetowe"> </OBJECT> <UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="Infoseek PL"> <param name="Local" value="http://infoseek.icm.edu.pl"> <param name="FrameName" value="right"> <param name="ImageNumber" value="13"> </OBJECT> </UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="Serwisy z oprogramowaniem"> </OBJECT> <UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="SlaughterHouse"> <param name="Local" value="http://slaughterhouse.com"> <param name="FrameName" value="right"> <param name="ImageNumber" value="13"> </OBJECT> </UL> </UL> </BODY></HTML>
Jak │atwo zauwa┐yµ, spis sk│ada siΩ z dwupoziomowego wykazu typu UL, w kt≤rym wy┐szy poziom pe│ni funkcjΩ folderu dla ni┐szego, czyli odsy│aczy do konkretnych stron. Podany przyk│ad mo┐na skopiowaµ i przystosowaµ do w│asnych potrzeb, rozwijaj▒c o dalsze odsy│acze. Dla u│atwienia, tutaj jest zzipowana wersja spisu - hhc.zip
Polecenie <param name="FrameName" value="right">
m≤wi o skierowaniu zawarto╢ci do prawej ramki (right), w│a╢nie tej, kt≤r▒ okre╢lili╢my w uk│adzie ramek dla ca│ej strony.
Polecenie <param name="ImageNumber" value="13">
informuje, jakie ikonki s▒ przypisane do poszczeg≤lnych adres≤w: do dyspozycji mamy "auto" i numery od 1 do 42. Na przyk│ad, value=13 generuje ikonkΩ strony w Internecie, value=17 - ikonkΩ ze znakiem informacji.
HTML Help Workshop generuje warto╢ci adres≤w lokalnych z backslashami, choµ dzia│aj▒ obie wersje.
Ta w│a╢nie definicja jest przywo│ywana do lewej ramki, podanym wy┐ej poleceniem OBJECT. Obs│uguje j▒ kontrolka ActiveX, wbudowuj▒c j▒ w stronΩ HTML.
Oczywi╢cie nic nie stoi na przeszkodzie, aby tego rodzaju spis umieszczaµ nie w uk│adzie ramkowym, lecz na pojedynczych stronach.