Łącze musi mieć określony cel HREF, aby mógł być użytecznym obiektem wyświetlanym.
Większość przeglądarek nie analizuje zaawansowanego kodu JavaScript w pliku
<A HREF=""
tag taki jak:
<A href="JavaScript:var elem = document.getElementById('foo');"
ponieważ znacznik HREF w większości przeglądarek nie zezwala na białe znaki lub konwertuje białe znaki na% 20, odpowiednik HEX SPACJI, co sprawia, że JavaScript jest absolutnie bezużyteczny dla interpretera.
Jeśli więc chcesz użyć znacznika HREF do uruchomienia wbudowanego kodu JavaScript, musisz podać prawidłową wartość parametru HREF FIRST, który nie jest zbyt skomplikowany (nie zawiera białych znaków), a następnie podać kod JavaScript w tagu atrybutu zdarzenia, takiego jak OnClick , OnMouseOver, OnMouseOut itp.
Typową odpowiedzią jest zrobienie czegoś takiego:
<A HREF="#" onclick="var elem = document.getElementById('foo');">Get the object</a>
Działa to dobrze, ale powoduje, że strona przeskakuje na górę, ponieważ nakazuje to znak funta / hash.
Wystarczy podać znak funta / hash w tagu A HREF, tak naprawdę określa kotwicę główną, która zawsze jest domyślnie na górze strony, możesz określić inną lokalizację, określając atrybut NAME w tagu A HREF.
<A NAME='middleofpage'></A>
Następnie możesz zmienić tag A HREF, aby przejść do „middleofpage” i wykonać JavaScript w zdarzeniu OnClick, gdy tak się stanie:
<A HREF="#middleofpage" onclick="var elem = document.getElementById('foo');">Get the object</a>
Będzie WIELE WCZEŚNIE, gdy nie chcesz, aby ten link przeskakiwał, więc możesz zrobić dwie rzeczy:
<A HREF="#thislinkname" name='thislinkname' onclick="var elem = document.getElementById('foo');">Get the object</a>
Teraz kliknięcie nie zniknie, ale może spowodować, że strona ponownie wyśrodkuje się z bieżącej rzutni. To nie jest ładne. Jaki jest najlepszy sposób na dostarczenie wbudowanego javascript za pomocą A HREF, ale bez konieczności wykonywania powyższych czynności? JavaScript: void (0);
<A HREF="JavaScript:void(0);" onclick="var elem = document.getElementById('foo');">Get the object</a>
Mówi to przeglądarce, aby przejść NIGDY, ale zamiast tego wykonać prawidłowy JavaScript: void (0); działają najpierw w znaczniku HREF, ponieważ nie zawiera białych znaków i nie będzie analizowany jako adres URL. Zamiast tego zostanie uruchomiony przez kompilator. VOID jest słowem kluczowym, które po dostarczeniu z wartością 0 zwraca wartość UNDEFINED, która nie wykorzystuje już żadnych zasobów do obsługi zwracanej wartości, która wystąpiłaby bez podania wartości 0 (jest bardziej przyjazna dla zarządzania pamięcią / wydajności).
Następną rzeczą, która się dzieje, jest wykonanie OnClick. Strona się nie porusza, nic się nie dzieje na ekranie.
javascript:
jest jednym z wielu schematów URI: en.wikipedia.org/wiki/URI_scheme , jakdata:
.