Spis treści Skorowidz Poziom główny Poziom nadrzędny Wstecz Dalej

Odsyłacze hipertekstowe HTML

Zasady tworzenia odsyłaczy

Ten fragment podręcznika omawia hipertekstową strukturę dokumentów HTML (HyperText Markup Language). Dokumenty HTML mogą zawierać teksty, grafikę, dźwięk i animacje oraz odsyłacze, dzięki którym możliwe jest naturalne czytanie dokumentów w kolejności innej, niż po kolei od początku do końca. Elementem, który nadaje dokumentom HTML hipertekstowe właściwości, jest kotwica (ang. anchor). W notacji HTML element ten oznaczamy parą znaczników

<a href="adres">aktywny tekst odsyłacza</a>

Za jego pomocą możliwe jest swobodne tworzenie odsyłaczy wewnątrz pojedynczego dokumentu (np. odwołania do paragrafów, sekcji, rozdziałów itp.) lub do innych dokumentów, znajdujących się na lokalnej maszynie albo na serwerze (hoście) położonym gdzieś daleko w świecie… Ogólną postać adresowania plików i innych zasobów dostępnych w sieci określa się terminem URI (Universal Resource Identifier).

Odsyłacze mogą wskazywać nie tylko na dokumenty traktowane jako całość, ale także na ich wybrane fragmenty lub oznaczone miejsca. Symboliczna nazwa fragmentu dokumentu, używana w odsyłaczach hipertekstowych, nosi nazwę zakładki lub identyfikatora.

Adresy względne

Zanalizujmy działanie następującego odsyłacza:

opis pojęcia URI

Odsyła on czytelnika do dokumentu zawartego w pliku o nazwie semi7.html, a ściślej — do jego nazwanego fragmentu opatrzonego nazwą „konwencjaURI”. Adres docelowy tego odsyłacza ma zawartość

../semi7.html#konwencjaURI

Odsyłacz wskazuje więc, że wskazywany plik winien znajdować się w kartotece nadrzędnej względem kartoteki zawierającej bieżący dokument. Jeżeli plik docelowy nie jest dostępny (np. nie istnieje w podanej kartotece), to realizacja odsyłacza nie będzie możliwa; mimo to sam odsyłacz jest poprawny.

Pierwotna kopia dokumentu, który teraz czytasz, nosi nazwę hyperref.html i mieści się w systemie plików serwera karnet.ar.wroc.pl w kartotece użytkownika jasj, w podkartotece cwiczenia/HTML. Kartoteką nadrzędną jest więc ~jasj/cwiczenia. Plik karnet.ar.wroc.pl/~jasj/cwiczenia/semi7.html rzeczywiście istnieje, mieści w sobie dokument hipertekstowy zawierający zakładkę konwencjaURI w miejscu, w którym znajduje się opis pojęcia URI. Wszystko jest więc w porządku: jeżeli oglądasz tę właśnie kopię dokumentu, to odsyłacz będzie działać i w każdej chwili możesz z niego skorzystać. Jeżeli jednak plik zostanie usunięty lub jeżeli zostanie zmieniona jego nazwa, to na każdą próbę jego pobrania serwer odpowie komunikatem o niepowodzeniu (np. 404: not found), który przeglądarka wyświetli po jego otrzymaniu.

Spróbuj jednak zapisać bieżący plik na dysku w swoim systemie i odczytać go swoją przeglądarką. Wtedy odsyłacz będzie wskazywał na plik o nazwie semi7.html, położony na Twoim dysku; jedyny powód istnienia tego pliku we wskazanym miejscu mógłby być taki, że wcześniej sam go tam umieściłeś — jeżeli jednak tego nie zrobiłeś, to nie masz co liczyć na realizację tego odsyłacza; Twoja przeglądarka wygeneruje i wyświetli komunikat o niepowodzeniu, podając jego przypuszczalną przyczynę (jak taki komunikat wygląda w Twojej przeglądarce?).

Adresy absolutne

Adresy plików dostępnych przez sieć WWW

Opisany wyżej przykład adresu URI ma postać względną; postać bezwzględna musi zawierać następujące elementy adresu: nazwę protokołu, nazwę maszyny i ścieżkę dostępu do pliku, a po niej być może także dodatkowe elementy.

Odsyłacz

opis pojęcia URI

wskazuje na zakładkę konwencjaURI w pliku o nazwie semi7.html znajdującym się w kartotece ~jasj/cwiczenia serwera Uniwersytetu Przyrodniczego we Wrocławiu; adresem docelowym tego odsyłacza jest http://karnet.ar.wroc.pl/~jasj/cwiczenia/semi7.html#konwencjaURI. Realizacja tego połączenia jest możliwa tylko wtedy, gdy masz dostęp do Internetu, a wskazany serwer pracuje i zawiera wskazany plik. Jeżeli te warunki są spełnione, otrzymasz kopię dokumentu pobraną ze wskazanego miejsca.

Adresy plików lokalnych

Adresem absolutnym URI można opisać także plik położony w lokalnym systemie plików, niedostępny przez sieć. Służy do tego protokół file:. Na przykład plik semi7.html jest dostępny dla użytkowników maszyny karnet pod ścieżką dostępu /home/jasj/public_html/cwiczenia/semi7.html. Ponieważ chodzi o użytkowników tej konkretnej maszyny, podawanie jej nazwy nie jest konieczne. Zatem odpowiednim adresem URI będzie file:///home/jasj/public_html/cwiczenia/semi7.html. Czytelnik prawie na pewno pracuje w tej chwili na innej maszynie, adres typu file: będzie się odnosił do jego własnego systemu plików.

Zamiast pustej nazwy maszyny dopuszczalne jest również użycie nazwy localhost, oznaczającej maszynę użytkownika: file://localhost/mnt/floppya/semi7.html

Jeżeli plik znajduje się w głównej kartotece dyskietki, to jego adresem URI w systemach Windows będzie prawdopodobnie file:///a:/semi7.html; w systemach Linux może mu odpowiadać adres file:///mnt/floppya/semi7.html.

Jakie adresy stosować?

Tworząc dokument składający się z kilku plików wzajemnie połączonych odsyłaczami powinniśmy zadbać o to, by używać tylko adresów względnych; tylko wtedy skopiowanie całego kompletu plików w inne miejsce (czy to do innej kartoteki, czy na inny serwer) nie naruszy działania odsyłaczy.

Jeżeli odwołujemy się do zewnętrznego źródła informacji, które istnieje niezależnie od naszych działań, stosujmy adresy bezwzględne: tylko wtedy każdy czytelnik na pewno trafi do wskazanego przez nas dokumentu.

Pamiętajmy, że adresy typu file:// wskazują zawsze na zasoby maszyny czytelnika. Jako autorzy możemy ich użyć, gdy chcemy ograniczyć krąg odbiorców pliku do użytkowników komputera, w którego systemie ten plik się znajduje.

Nazwy fragmentów dokumentu i zakładki

W swoim dokumencie możesz tworzyć własne zakładki; niżej wyjaśnimy zasady ich tworzenia i używania.

Jeżeli chcesz odwołać się z jakiego dokumentu do TEGO WAŻNEGO FRAGMENTU, to możesz to zrobić pod warunkiem, że upatrzony przez Ciebie fragment jest nazwany (named) lub opatrzony zakładką (bookmark). Jeżeli jesteś autorem dokumentu zawierającego TEN WAŻNY FRAGMENT, to nic nie stoi na przeszkodzie, by nadać mu nazwę. Robi się to, umieszczając w odpowiednim miejscu tekstu źródłowego polecenia formatujące jednym z niżej wyjaśnionych sposobów.

Nadawanie nazw fragmentom dokumentu

Znacznik otwierający dowolnego elementu HTML można opatrzyć atrybutem id="nazwa". Spowoduje to nadanie identyfikatora nazwa całemu obszarowi tego elementu, aż do znacznika zamykającego. Nazwę fragmentu nazwa określa autor dokumentu; on też jest odpowiedzialny za jej unikalność w obszarze całego pliku dokumentu. Nadaną w ten sposób nazwę obszaru można stosować w odsyłaczach hipertekstowych na takich samych zasadach, jak etykiety zakładek wprowadzone elementem a z atrybutem name="nazwa". Mechanizm nazywania fragmentów jest ogólniejszy i nowocześniejszy, niż mechanizm tworzenia zakładek opisany w następnym podrozdziale. Bieżący akapit został opatrzony nazwą opis-atrybutu-id, gdyż jego znacznik otwierający ma postać

<p id="opis-atrybutu-id">

Zakładki

Opisany niżej mechanizm tworzenia zakładek za pomocą elementu a jest reliktem z wczesnych wersji języka HTML. W nowo tworzonych dokumentach nie należy go stosować. Warto jednak go znać, gdyż jest rozumiany przez oprogramowanie i często spotyka się go w praktyce.

Element a z atrybutem name="nazwa" definiuje punkt zakotwiczenia zakładki o nazwie nazwa. Nazwę zakładki określa autor dokumentu. Zgodnie z ogólnymi zasadami znakowania można opatrzyć zakładką miejsce:

<a name="nazwa" />

lub wybrany fragment tekstu, umieszczając go w zakresie elementu a:

<a name="nazwa">wybrany fragment</a>

Na początku bieżącego akapitu został umieszczony znacznik zakotwiczenia o treści

<a name="opis-elementu-a-z-atrybutem-name" ></a>

który opatruje to miejsce w dokumencie zakładką o nazwie opis-elementu-a-z-atrybutem-name.

Jak tworzyć nazwy zakładek i identyfikatory fragmentów?

Niezależnie od wyboru sposobu przydzielania nazw (zakładki czy identyfikatory) fragmentom dokumentu, wybór samej nazwy zależy od decyzji autora. Warto pamiętać, że nazwa taka z założenia będzie składnikiem adresu URI. Dla uniknięcia nieporozumień najprościej będzie, jeżeli do jej utworzenia zostaną użyte tylko niektóre znaki zestawu podstawowego ASCII: wielkie i małe litery łacińskie, cyfry, kropka, łącznik (-) i znak podkreślenia (_). Niewskazane są spacje, nawiasy, znaki: !, ", #, $, %, &, ', /, :, ;, =, ?, @, \, ^, `, | i wszystkie znaki zestawów rozszerzonych, w tym litery polskiego alfabetu. W obrębie jednego dokumentu identyfikatory nie mogą się powtarzać.

Odsyłacze do zakładek i nazwanych fragmentów dokumentu

Element a definiuje odsyłacz, a jego adres docelowy — ten, do którego chcemy odesłać czytelnika — zadaje się jako wartość atrybutu href (z ang. Hypertext REFerence).

Odsyłacze do nazwanych fragmentów i miejsc tego dokumentu, np. do TEGO WAŻNEGO FRAGMENTU, można umieszczać w dowolnym miejscu tego lub dowolnego innego dokumentu. Fragment, który ma być celem odsyłacza, musi być nazwany lub opatrzony zakładką. Inaczej nie będzie się dało go zaadresować.

Adresowanie odsyłaczy do fragmentów bieżącego dokumentu

Wskazanie w danym dokumencie jako adresu docelowego fragmentu tego samego dokumentu, na przykład fragmentu opatrzonego przykładową nazwą wazne-miejsce, ma postać

<a href="#wazne-miejsce">opis odsyłacza</a>

Napis wazne-miejsce stanowi nazwę zakładki lub fragmentu; obszar zawierający TEN WAŻNY FRAGMENT rzeczywiście nosi taką nazwę. Znak kratki (#) mówi, że jest to nazwa fragmentu, a nie serwera ani pliku.

Adresowanie odsyłaczy do fragmentów innych dokumentów

Adres docelowy fragmentu dokumentu umieszczonego w innym pliku (adresowanym za pomocą odsyłacza względnego) ma postać

nazwa-pliku#nazwa-fragmentu

Na przykład zamieszczony w początkowej części tego rozdziału odsyłacz z adresem względnym do opisu konwencji adresowej URI zawartego w dokumencie z kartoteki nadrzędnej, ma postać

<a href="../semi7.html#konwencjaURI">URI</a>

Adres docelowy fragmentu dokumentu umieszczonego na zdalnym serwerze ma postać

http://adres-serwera/nazwa-pliku#nazwa-fragmentu

Na przykład zamieszczony w tym rozdziale odsyłacz z adresem absolutnym, wskazujący na nazwany fragment dokumentu z serwera karnet, dostępny przez sieć WWW, utworzono z tekstu źródłowego

<a href="http://karnet.ar.wroc.pl/~jasj/cwiczenia/semi7.html#konwencjaURI">URI</a>

To działa!

Na przykład ten wyraz wskazuje na zakładkę o nazwie punkt_docelowy, której punkt zakotwiczenia powinien być zdefiniowany w tym dokumencie (jeżeli tak nie jest, to odsyłacz nie będzie działać).

Gdy pukniemy w wyróżniony wyżej „wyraz” (przeglądarka wyróżnia fragmenty dokumentu objęte odsyłaczem; opisz, jak to wygląda w przypadku Twojej przeglądarki!), zostaniemy „przeniesieni” do miejsca, w którym znajduje się punkt zakotwiczenia zakładki o nazwie punkt_docelowy podanej w odsyłaczu. Mówiąc ściślej, przeglądarka podejmie próbę załadowania żądanego dokumentu (czyli tego dokumentu; skoro jest to bieżący dokument, to nie trzeba go ładować), a jeżeli to się uda, to wyświetli go w taki sposób, żeby widoczny był właśnie ten pożądany fragment.


To jest punkt docelowy, o którym mowiliśmy przed chwilą. Poniżej znajduje się lista odsyłaczy. Możesz z niej skorzystać, jeżeli chcesz skoczyć:

© Copyright 2000 by Aniela Pawłowska, Katedra Matematyki AR
© Copyright 2000–2003, 2006 by Jan Jełowicki, Katedra Matematyki Uniwersytetu Przyrodniczego we Wrocławiu
janj@aqua.ar.wroc.pl
http://karnet.up.wroc.pl/~jasj