Od czasu do czasu widziałem następujący href używany na stronach internetowych. Jednak nie rozumiem, co to próbuje zrobić lub techniki. Czy ktoś może rozwinąć proszę?Co robi wyrażenie href <a href="javascript:;"></a>?
<a href="javascript:;"></a>
Od czasu do czasu widziałem następujący href używany na stronach internetowych. Jednak nie rozumiem, co to próbuje zrobić lub techniki. Czy ktoś może rozwinąć proszę?Co robi wyrażenie href <a href="javascript:;"></a>?
<a href="javascript:;"></a>
Element <a>
jest nieprawidłowym kodem HTML, chyba że ma atrybut href
lub name
.
Jeśli chcesz, aby renderował się poprawnie jako łącze (tj. Podkreślony, wskaźnik ręczny itp.), Będzie to robić tylko wtedy, gdy ma atrybut href
.
Tego typu kod jest czasem używany jako sposób utworzenia linku, ale bez podawania rzeczywistego adresu URL w atrybucie href
. Deweloper najwyraźniej chciał, aby sam link nie działał, i był to najłatwiejszy sposób, jaki znał.
Prawdopodobnie ma jakiś kod zdarzenia javascript w innym miejscu, który jest uruchamiany po kliknięciu łącza i będzie to, co chce faktycznie się wydarzyć, ale chce, aby wyglądał jak normalny link tagu <a>
.
Niektórzy programiści używają w tym samym celu href='#'
, 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ć pustego href, ponieważ href=''
jest linkiem do bieżącej strony (tzn. Powoduje odświeżenie strony).
Są sposoby obejścia tych rzeczy. Używanie pustego bitu kodu Javascript w href
jest jednym z nich i chociaż nie jest to najlepsze rozwiązanie, działa.
Z ciekawości, czy jest lepszy sposób na zrobienie tego? –
Lepiej było to zrobić, jeśli funkcja zdarzeń zwraca 'return false;' lub 'event.preventDefault()' wtedy akcja 'href' nigdy nie zostanie wywołana, więc możesz umieścić tam coś bardziej sensownego. – Spudley
Jest to sposób na tworzenie linku, który nie robi absolutnie nic po kliknięciu (chyba że powiązane są zdarzenia JavaScript).
Jest to sposób prowadzenia Javascript zamiast następujący link:
<a href="Javascript: doStuff();">link</a>
Gdy nie ma faktycznie JavaScript, aby funkcjonować (jak twój przykład) nie robi nic.
Tak, więc nazywa się zdarzenia/metody JS .. – Rob
Ah, rozumiem. Skutecznie dezaktywuje link. –
<a href="javascript:void(0);"></a>
javascript:
informuje przeglądarkę zamiar napisać kod JavaScript
http://stackoverflow.com/a/1293130/681538 – Alex
<a href="javascript:alert('Hello');"></a>
jest tylko skrótem:
<a href="" onclick="alert('Hello'); return false;"></a>
Rodzaj, ale nie jest to prawdziwe porównanie "jak dla podobnych". Z tego powodu niektórzy wpadają w pułapkę używania go w pierwszej kolejności. – Lankymart
zasadzie zamiast korzystając z linku, aby przenieść stron (lub kotwic), stosując ta metoda uruchamia funkcje javascript (s)
<script>
function doSomething() {
alert("hello")
}
</script>
<a href="javascript:doSomething();">click me</a>
kliknięcie łącza spowoduje uruchomienie alarmu.
Istnieje kilka mechanizmów pozwalających uniknąć linku do miejsca docelowego. Ten z pytania nie jest zbyt intuicyjny.
Czystszą opcją jest użycie href="#no"
gdzie #no
jest niezdefiniowaną kotwicą w dokumencie.
Możesz użyć bardziej semantycznej nazwy, takiej jak #disable lub #action, aby zwiększyć czytelność.
Zalety podejścia:
Wady :
Ponieważ element <a>
nie działa jako link, najlepszym rozwiązaniem w takich przypadkach nie stosuje element <a>
lecz <div>
i zapewnienia pożądanego łącza podobny styl.
Podoba mi się również niezdefiniowana kotwica. Kolejną wadą jest to, że dodaje ona kotwicę do historii przeglądarki, więc wybieram użycie pustej metody JS w OP. –
Patrz poniżej:
<a href="Http://WWW.stackoverflow.com">Link to the website opened in different tab</a>
<a href="#MyDive">Link to the div in the page(look at the chaneged url)</a>
<a href="javascript:;">Nothing happens if there is no javaScript to render</a>
stary wątek, ale myślałem, że wystarczy dodać, że twórcy powód to wykorzystać konstrukt nie jest stworzenie niedziałający link, ale ponieważ javascript URL z jakiegoś powodu nie przechodzą referencje do aktywnego elementu html poprawnie.
np. handler_function(this.id)
działa jako onClick
, ale nie jako adres URL javascript.
Jest to zatem wybór między pisaniem pedantycznie zgodnych z normami kodów, który wymaga ręcznego dostosowania wywołania dla każdego hiperłącza lub nieznacznego niestandardowego kodu, który można zapisać raz i używać wszędzie.
Najlepszym sposobem, aby zawsze czynią link właściwie jest z css następująco:
a {cursor: pointer !important}
Trzeba unikać podążać un-niezbędne rzeczy, jak wspomniano w wątku.
Możesz wywołać metodę JS z tym, jeśli się nie pomylisz .. javascript: SomeFunction() – Rob
Nie próbuje zrobić niczego, co nie może być lepiej obsłużone przy pomocy odpowiedniej obsługi kliknięcia. Powinieneś tego unikać, ponieważ jest brzydki, niedostępny i spowodował, że ludzie używają schematu 'javascript:', w którym nie powinno być używane ('onclick =" javascript: ... "') – Gareth
Sprawdź to: http: // stackoverflow. com/a/138233/908879 – ajax333221