niedziela, 23 października 2011

Odnośniki w HTML

Odnośniki, czyli znaczniki HTML <a>, są jednym z podstawowych elementów języka HTML. W zasadzie stanowią one podstawę hipertekstu i umożliwiają poruszanie się w globalnej sieci. Ich działanie polega na tym, że po aktywacji następuje przeniesienie do innego miejsca w sieci określonego adresem URL. W przypadku aplikacji internetowych odnośniki mają kilka istotnych wad.

Przeładowanie strony

Standardowe działanie przeglądarki, polegające na prezentowaniu kolejnych stron HTML, wywoływanych poprzez naciśnięcie na odnośniku jest zupełnie rożne od działania zwyczajnego programu GUI. Aplikacje Windows (i nie tylko) są zorganizowane w okna, które pojawiają się, znikają lub tylko zmieniają swoją zawartość pod wpływem działań operatora. Rzadko następuje całkowita zmiana zawartości ekranu. Dlatego też należało zmienić sposób nawigowania po stronie HTML, która miała być aplikacją internetową. Z pomocą przyszła możliwość asynchronicznych wywoływać HTTP z JavaScriptu, chodzi o XMLHttpRequest ale o tym innym razem. Aby to jednak zadziałało należało zmienić sposób wołania odnośników.

<a href="#" onClick="validateLogin();">

Jak widać parametr href został niejako pominięty (ustawiony pusty) natomiast wykorzystano zdarzenie onCLick, które wywołuje wskazaną funkcję. Takie rozwiązanie jest bliższe aplikacyjnemu: w zależności od potrzeb możemy decydować co ma się zdarzyć po naciśnięciu odnośnika, wcale nie musi to być przejście do nowej strony (praktycznie nigdy nie jest).

Klawiatura

Klawiatura jest to jedno z narzędzi pośredniczące w komunikacji pomiędzy użytkownikiem a programem. Służy do wprowadzania informacji, szczególnie tekstowej, przez człowieka, oraz sterowania programem. Rozwój komputerów przyniósł inne urządzenia, takie jak myszka czy ekrany dotykowe, które przejęły część zadań klawiatury. Eksperymentalnie możliwe jest również sterowanie głosem czy gestami, ale do tej pory klawiatura jest istotnym, a w wielu przypadkach podstawowym interfejsem programu.

Klawiatura w przeglądarkach domyślnie jest podporządkowana przeglądaniu hipertekstu. Całe szczęście że w podstawowych aspektach nie różni się od zwykłych desktopowych programów. Zawiera pola <input> służące do wprowadzania danych, przyjmuje znaki wysyłane przez klawiaturę i wprowadza je w miejsce oznaczone kursorem na ekranie. Niestety kilka szczegółów działa inaczej. Oprócz pól tekstowych , które naturalnie przyjmują sterowanie z klawiatury są jeszcze odnośniki , które również mogą być kontrolowane klawiaturą. Przy normalnym używaniu przeglądarki do przeglądania stron internetowych takie działanie jest jak najbardziej pożądane. Natomiast w przypadku aplikacji internetowych sprawa ma się inaczej. Programy winne być ergonomiczne, dopracowane w każdym elemencie, w tym w sposobie nawigacji.

Nawigacja tabulatorem

Podstawowym sposobem przechodzenia pomiędzy polami <input> jest tabulator. Zazwyczaj jednak na ekranie oprócz takich pól znajduje się jeszcze szereg elementów takich jak klawisze, linki, menu, które służą do sterowania programem. Naturalnym podejściem jest wykorzystanie do ich utworzenia znacznika <a>, którego wywołanie spowoduje wykonanie określonej akcji. Niestety znaczniki te łamią oczekiwaną przez użytkownika zasadę, "chodzenia" kursorem wyłącznie po polach. Program jest wtedy wygodniejszy w obsłudze.

Rozwiązanie

<div id="dfaB73D7E80" class="buttonup klawisz">

<div onclick="return wlk('aB6CF4EB0.html?procedura=L;komenda=311);">

</div>

Rozwiązanie które przyjąłem jest dosyć drastyczne. Ponieważ nie mogłem zmienić zachowanie odnośników praktycznie wszystkie wyrzuciłem. Wystarcza używanie podstawowych elementów strony takich jak DIV i SPAN z podpiętymi zdarzeniami. Czasami tak trudno jest zmienić własności danego elementu, że prościej zbudować nowy, od podstaw. Oczywiście w pewnych miejscach nadal używam odnośników. Tam gdzie celem jest przejście do innej witryny są niezastąpione, gdyż programowe rozwiązania są zazwyczaj ułomne ze względu na ograniczenia narzucane przez reguły bezpieczeństwa obowiązujące przeglądarki. Wszędzie indziej rozwiązania programowe dają większą kontrolę nad działaniem programu

Brak komentarzy:

Prześlij komentarz