Mitä "href" arvoa minun pitäisi käyttää JavaScript-linkkejä varten, "#" vai "javascript:void(0)"?

Seuraavassa on kaksi tapaa rakentaa linkki, jonka ainoana tarkoituksena on JavaScript-koodin suorittaminen. Kumpi on parempi toiminnallisuuden, sivun latausnopeuden, validointitarkoitusten jne. kannalta?

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

tai

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

'#' vie käyttäjän takaisin sivun alkuun, joten käytän yleensä void(0).

javascript:; käyttäytyy myös kuten javascript:void(0);.

Kommentit (8)

Ensimmäinen, mieluiten oikean linkin kanssa, jota voi seurata, jos käyttäjältä on poistettu JavaScript käytöstä. Muista palauttaa false, jotta klikkaustapahtuma ei syty, jos JavaScript suoritetaan.

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

Jos käytät Angular2:ta, tämä tapa toimii:

<a [routerLink]="" (click)="passTheSalt()">Klikkaa minua</a>.

Katso tästä https://stackoverflow.com/a/45465728/2803344

Kommentit (12)

Älä unohda, että URL-osoitteesi voi olla tarpeellinen - onclick käynnistyy ennen kuin viittausta seurataan, joten joskus sinun on käsiteltävä jotain asiakkaan puolella ennen sivulta siirtymistä.

Kommentit (0)