Dzień 13: Używanie prawdziwych linków
Chyba należałoby zmienić tytuł i przenieść tekst do Dzien13UzywaniePrawdziwychOdnosnikow?
Zmorą Sieci są odnośniki "javascript:
" — pseudo-odnośniki, które wykonują kawałek kodu Javascript kiedy na nie klikniesz. To jest częsty przypadek na stronach, gdzie takie odniśniki
otwierają osobne małe okienko np. do dodawania komentarzy. Dlaczego jest to problemem? Ponieważ 9% użytkowników
Internetu nie używa Javascriptu z takich czy innych powodów, w tym również dlatego, że ich przeglądarki po prostu tego nie obsługują. Zatem dla nich takie pseudo-odnośniki nie działają;
używaj prawdziwych odnośników.
Mimo, że problem jest prosty do opisania i łatwy do poprawienia, to z pewnością nie można go bagatelizować. Niektóre omawiane tutaj problemy, jak brak odnośnika przeskakującego menu strony, zmniejszają łatwość obsługi Twojej strony do pewnego stopnia, ale tak naprawdę nadal może być w jakiś sposób odczytana. Natomiast pseudo-odnośniki z „javascript:” powodują, że pewne fragmenty strony są kompletnie niedostępne. Na przykład jeśli masz komentarze ukryte za takim odnośnikiem, to równie dobrze mogłoby ich w ogóle nie być.
Kto na tym skorzysta?
- Marek skorzysta. Lynx nie obsługuje Javascriptu.
- Michał skorzysta. Links nie obsługuje Javascriptu.
- Julia skorzysta. Mimo, że używa Internet Explorera, to zgodnie z polityką departamentu informatyki w jej firmie obsługa Javascript jest wyłączona na wszystkich stronach, które nie znajdują się na ich liście zaufanych. Twojej strony na tej liście nie ma.
-
Google skorzysta. Google stara się podążać za odnośnikami aby znaleźć i zaindeksować więcej stron, jednak nie może wejść na stronę za odnośnikiem
"
javascript:
", ponieważ nie wykonuje skryptów podczas indeksowania stron Sieci.
Gwoli ścisłości, następca Linksa: eLinks zawiera w sobie podstawy obsługi Javascriptu. Niemniej nie chroni Cię to przed dokonaniem opisywanych tutaj zmian.
Jak to zrobić?
Większość nowych szablonów w narzędziach do blogowania nie używa pseudo-odnośników, więc możliwe, że nie musisz nic zmieniać. Sprawdź czy masz w kodzie strony odnośniki z javascript:
.
Jeżeli nie to wszystko w porządku.
Jednak starsze szablony Movable Type zawierały taki odnośnik:
<a href="javascript:OpenComments(<$MTEntryID$>)">Comments (<$MTEntryCommentCount$>)</a>
Jeśli masz taki kod zamień go na następujący:
<a href="<$MTCGIPath$>mt-comments.cgi?entry_id=<$MTEntryID$>"
onclick="OpenComments(<$MTEntryID$>); return
false">Comments
(<$MTEntryCommentCount$>)</a>
W przeglądarkach obsługujących Javascript działanie takiego odnośnika będzie identyczne, ponieważ kod z atrybutu onclick
wykona się najpierw, zanim zostanie uwzględniony atrybut
href
. Więc w tej wersji nadal będzie wywoływana funkcja OpenComments
, która otwiera okienko z komentarzami. Jednak przeglądarka nie
obsługująca Javascriptu (oraz Google) zignoruje atrybut onclick
i przejdzie do strony wskazanej przez atrybut href, która pokazuje komentarze w tym samym oknie.
Jeżeli używasz pseudo-odnośników javascript:
z jakiegokolwiek innego powodu, przestań. Po prostu przestań. Zastosuj powyższą technikę, tak aby przeglądarki nie obsługujące Javascriptu
zawsze miały szansę podążyć za prawdziwym odnośnikiem (czyli opisanym przez href
).
Zobacz także
- Jeff Howden: Links & JavaScript Living Together in Harmony. Artykuł wyjaśniający technikę wykorzystaną powyżej, czyli o tym jak stworzyć odnośnik obsługujący Javascript i równocześnie nieszkodliwy dla przeglądarek bez Javascriptu. (Strona w języku angielskim)
Postscriptum
Nawet mnie nie prowokuj, żebym zaczął o tych dynamicznych menu w Javascript. Są cool mniej więcej tak samo jak palenie papierosów. Nie rób takich menu, używaj prawdziwych odnośników.
Zmodyfikowano: 19.09.2007, 18:53