Od czasu do czasu widziałem następujący href używany na stronach internetowych. Nie rozumiem jednak, co to próbuje zrobić, ani techniki. Czy ktoś może opracować proszę?
<a href="javascript:;"></a>
javascript
John Livermore
źródło
źródło
javascript:
schematu, w którym nie powinien być używany (onclick="javascript:…"
)Odpowiedzi:
Na
<a>
Elementem jest nieprawidłowy HTML, chyba że ma OSOBĄhref
lubname
atrybut.Jeśli chcesz, aby renderował się poprawnie jako link (tj. Podkreślony, wskaźnik dłoni itp.), Zrobi to tylko wtedy, gdy będzie miał
href
atrybut.Dlatego taki kod jest czasami używany jako sposób tworzenia linku, ale bez konieczności podawania rzeczywistego adresu URL w
href
atrybucie. Deweloper najwyraźniej chciał, aby sam link nic nie robił, i to był najłatwiejszy sposób, jaki znał.Prawdopodobnie ma jakiś kod zdarzenia javascript w innym miejscu, który jest uruchamiany po kliknięciu linku, i tak właśnie chce się stać, ale chce, aby wyglądał jak zwykły
<a>
link do tagu.Niektórzy programiści używają
href='#'
tego samego celu, ale powoduje to, że przeglądarka przeskakuje na górę strony, co może nie być pożądane. I nie mógł po prostu zostawić href pustego, ponieważhref=''
jest linkiem do bieżącej strony (tzn. Powoduje odświeżenie strony).Istnieje wiele sposobów na obejście tych rzeczy.
href
Jednym z nich jest użycie pustego fragmentu kodu JavaScript i chociaż nie jest to najlepsze rozwiązanie, działa.źródło
return false;
lubevent.preventDefault()
wtedyhref
akcja nigdy nie zostanie wywołana, więc możesz umieścić tam coś bardziej sensownego.<a>
Bezhref
lubname
nie jest nieważna; można to łatwo sprawdzić za pomocą walidatora.#
fragment , który nigdy nie jest wysyłany do serwera WWW (a zatem do zapory); jest używany tylko wewnętrznie przez przeglądarkę. W takim przypadku kliknięcie linku oznaczonego<a href="#">
...</a>
nie spowoduje wysłania przez przeglądarkę żądań HTTP w dowolnym miejscu; wystarczy przewinąć do góry strony.w zasadzie zamiast używać linku do przenoszenia stron (lub kotwic), użycie tej metody uruchamia funkcje javascript
kliknięcie linku spowoduje uruchomienie alertu.
źródło
Istnieje kilka mechanizmów pozwalających ominąć link prowadzący do celu. Pytanie z tego pytania nie jest zbyt intuicyjne.
Opcja odkurzacz jest użycie
href="#no"
gdzie#no
jest niezdefiniowane kotwicy w dokumencie.Możesz użyć bardziej semantycznej nazwy, takiej jak #disable lub #action, aby zwiększyć czytelność.
Korzyści z tego podejścia:
Wady:
Ponieważ
<a>
element nie działa jako łącze, najlepszą opcją w tych przypadkach nie jest użycie<a>
elementu, ale a<div>
i zapewnienie pożądanego stylu podobnego do łącza.źródło
jest po prostu skrótem dla:
źródło
Jest to sposób na zrobienie z linku absolutnie nic po kliknięciu (chyba że powiązane są z nim zdarzenia JavaScript).
Jest to sposób na uruchomienie Javascript zamiast klikania linku:
Gdy faktycznie nie ma javascript do uruchomienia (jak w twoim przykładzie), nic nie robi.
źródło
Zobacz to:
źródło
javascript:
informuje przeglądarkę, aby napisała kod javascriptźródło
Stary wątek, ale pomyślałem, że po prostu dodam, że powodem, dla którego programiści używają tej konstrukcji, nie jest tworzenie martwego łącza, ale ponieważ adresy URL javascript z jakiegoś powodu nie przekazują poprawnie odniesień do aktywnego elementu HTML.
np.
handler_function(this.id)
działa jakoonClick
URL javascript, ale nie jako.Jest to więc wybór między pisaniem kodu zgodnego ze standardami pedantycznymi, który wymaga ręcznej regulacji połączenia dla każdego hiperłącza, lub nieco niestandardowym kodem, który można zapisać raz i używać wszędzie.
źródło
Więc jest używany do pisania kodów js wewnątrz
href
zamiast detektorów zdarzeń, takich jakonclick
unikanie#
linków i unikanie linków,href
abya
znaczniki były poprawne dla html.Miałem badanie, jak używać
javascript:
wewnątrzhref
atrybutu.Za pomocą tego kodu możesz nawet pisać tam kody js zamiast wywoływać tylko funkcje.
Testowane w wersji chromowanej 68.0.3440.106 (oficjalna wersja) (64-bit)
Testowane w Firefox Quantom 61.0.1 (64-bit)
źródło
Najlepszym sposobem na prawidłowe renderowanie linku jest użycie css w następujący sposób:
Należy unikać przestrzegania niepotrzebnych rzeczy, takich jak wspomniane w wątku.
źródło