Kokią "href" reikšmę turėčiau naudoti "JavaScript" nuorodoms: "#" ar "javascript:void(0)"?

Toliau pateikiami du nuorodos, kurios vienintelis tikslas - paleisti "JavaScript" kodą, kūrimo būdai. Kuris iš jų yra geresnis funkcionalumo, puslapio įkėlimo greičio, patvirtinimo ir kt. požiūriu?

function myJsFunc() {
    alert("myJsFunc");
}
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>

arba

function myJsFunc() {
    alert("myJsFunc");
}
 <a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>

'#' vartotoją grąžins į puslapio viršų, todėl paprastai naudoju void(0).

javascript:; taip pat elgiasi kaip javascript:void(0);

Komentarai (8)

Pirmoji, geriausia su tikra nuoroda, kurią reikia sekti, jei naudotojas išjungęs "JavaScript". Tik įsitikinkite, kad grąžinama false, kad paspaudimo įvykis neįsijungtų, jei "JavaScript" įvyksta.

<a href="#" onclick="myJsFunc(); return false;">Link</a>

Jei naudojate "Angular2", šis būdas veikia:

<a [routerLink]="" (click)="passTheSalt()">Click me</a>.

Žr. čia https://stackoverflow.com/a/45465728/2803344

Komentarai (12)

Nepamirškite, kad gali prireikti URL adreso - "onclick" paleidžiamas prieš sekant nuorodą, todėl kartais prieš pereinant iš puslapio reikės apdoroti ką nors kliento pusėje.

Komentarai (0)