Ce inseamna "javascript:void(0)" înseamnă?

<a href="javascript:void(0)" id="loginlink">login</a>

Am'am văzut astfel de `href multe ori, dar eu nu't știu exact ce înseamnă asta.

Comentarii la întrebare (4)
Soluția

void operatorul evaluează dat exprimare și apoi se întoarce "nedefinit".

void operator este folosit de multe ori pur și simplu pentru a obține "nedefinit" primitiv valoare, de obicei, folosind "void(0)" (care este echivalent cu "nul 0"). În aceste cazuri, variabila globală nedefinit poate fi folosit în loc (presupunând că are nu a fost atribuit un non-default valoare).

O explicație este oferită de aici: void operator.

Motivul pentru care vrei să faci acest lucru cu "href" de un link este că, în mod normal, un "javascript:" URL-ul va redirecționa browser-ul la o versiune text a rezultat din evaluarea JavaScript. Dar dacă rezultatul este "nedefinit", atunci browser-ul va rămâne pe aceeași pagină. void(0) este doar un scurt și simplu script care se evaluează la "nedefinit".

Comentarii (26)

În plus față de soluția tehnică, javascript:void înseamnă că autorul este Greșit.

Nu există nici un motiv bun de a utiliza un "javascript:" pseudo-URL-ul(*). În practică, aceasta va provoca confuzii sau erori ar încerca cineva lucruri de genul 'link marcaj", " deschideți linkul într-o filă nouă, și așa mai departe. Acest lucru se întâmplă destul de o mulțime acum, oamenii s-au obișnuit să middle-click-pentru-noi-tab: se pare ca un link, vrei să-l citești într-o filă nouă, dar s-a dovedit a nu fi o adevărată link-ul de la toate, și vă oferă rezultate nedorite ca o pagină goală sau o eroare de JS atunci când mijlocul clic.

<a href="#"> este o alternativă comune care ar putea fi, fără îndoială, mai puțin rău. Cu toate acestea, trebuie să vă amintiți săreturn false de "onclick" event handler pentru a preveni link-ul de urmărit și defilare în sus la partea de sus a paginii.

În unele cazuri, pot exista efectiv un loc util pentru a indica link-ul de la. De exemplu, dacă aveți un control puteți să faceți clic pe deschide o anterior-ascuns <div id="foo">, asta face sens pentru a utiliza ` la link-ul de la ea. Sau dacă există un non-JavaScript mod de a face același lucru (de exemplu, 'thispage.php?show=foo' care stabilește foo vizibile pentru a începe cu), puteți link-ul de la asta.

În caz contrar, dacă un link de puncte doar un scenariu, nu este într-adevăr o legătură și nu ar trebui să fie marcate ca atare. De obicei abordare ar fi să adăugați "onclick" pentru a o <interval>, <div> sau un <a> fără o "href" și stil într-un fel pentru a face clar, puteți să faceți clic pe ea. Aceasta este ceea ce StackOverflow [ti, la momentul de scris; acum se foloseste href="#"].

Dezavantajul este că ai pierdut controlul tastaturii, deoarece puteți't tab pe un interval/div/goale-sau activați-l cu spațiu. Dacă acest lucru este de fapt un dezavantaj, depinde de ce fel de acțiune element este destinat pentru a lua. Se poate, cu un efort, încercare de a imita tastatura interactability prin adăugarea unui `tabIndex la element, și de a asculta pentru un Spațiu apăsare de tastă. Dar's n-o să-100% reproduce browser reale de comportament, nu în ultimul rând pentru diferite browsere pot răspunde la tastatură diferit (nu mai vorbim de non-vizuale browsere).

Dacă vrei într-adevăr un element care nu't un link, dar care poate fi activat normal cu mouse-ul sau tastatura, ceea ce vrei este un <buton tip="butonul"> "(sau " <input type="butonul"> este doar la fel de bun, pentru simplu textual conținutul). Îl poți folosi întotdeauna CSS pentru a coafa atat se pare mai mult ca o legătură mult de un buton, dacă doriți. Dar când acesta se comportă ca un buton, care's cum într-adevăr ar trebui să-l marchezi.

(*: în site-ul de creație, oricum. Evident, ele sunt utile pentru marcatorii. "javascript:" pseudo-Url-uri sunt o conceptuale bizarreness: o localizare care nu't punct la o locație, dar în loc de apeluri cod activ în locația curentă. Acestea au cauzat probleme majore de securitate pentru ambele browsere și aplicații web, și n-ar fi fost inventat de Netscape.)

Comentarii (14)

Aceasta înseamnă că nu vom face nimic. E o încercare de a avea link-ul nu mergeți nicăieri. Dar nu e corect.

Ar trebui, de fapt, doar pentru return false " în " onclick` caz, astfel:

<a href="#" onclick="return false;">hello</a>

De obicei, acesta este utilizat în cazul în care link-ul este de a face unele 'JavaScript-y' lucru. Cum de a posta o formă AJAX, sau schimbarea unei imagini, sau orice altceva. În acest caz, ai face orice funcție este numit reveni "false".

Pentru a face site-ul dvs. complet minunat, cu toate acestea, în general, va include un link care face aceeași acțiune, dacă persoana de navigare alege să nu pentru a rula JavaScript.

<a href="backup_page_displaying_image.aspx"
   onclick="return coolImageDisplayFunction();">hello</a>
Comentarii (17)

Există o MARE diferență în comportamentul de "#" vs javascript:void

"#" suluri de la partea de SUS a paginii în timp ce "javascript:void(0);" nu.

Acest lucru este foarte important dacă sunteți de codificare pagini dinamice. utilizatorul nu vreau să mă duc înapoi la partea de sus doar pentru că el a făcut clic pe un link de pe pagina.

Comentarii (4)

Este o metoda foarte populara de a adăuga funcții JavaScript pentru link-uri HTML.
De exemplu: [Print] link-uri pe care le vezi pe multe pagini web sunt scrise astfel:

<a href="javascript:void(0)" onclick="callPrintFunction()">Print</a>

De ce avem nevoie de "href" în timp ce "onclick" singur poate face treaba? Pentru că atunci când utilizatorii hover peste textul 'Imprima' când nu's nu "href", cursorul se va schimba într-o caret (ꕯ) în loc de un pointer (👆). Având doar "href" pe un " o " etichetă validează ca un hyperlink.

O alternativă la href="javascript:void(0);", este utilizarea de href="#". Această alternativă nu't nevoie de JavaScript pentru a fi activată de utilizator's browser-ul, deci este mult mai compatibil.

Comentarii (5)

Ar trebui să aveți întotdeauna un href pe o tag-uri. Apelarea unei funcții JavaScript care returnează 'nedefinit' va face doar bine. Deci va legarea la '#'.

Anchor tag-uri în Internet Explorer 6 fără un href nu te `a:hover stil aplicat.

Da, este groaznic și un minor crimă împotriva umanității, dar apoi din nou, astfel încât este Internet Explorer 6 în general.

Sper că acest lucru ajută.

Internet Explorer 6 este de fapt o infracțiune împotriva umanității.

Comentarii (0)

L's de remarcat faptul că te'll vedea, uneori, anulate 0, atunci când verificarea pentru nedefinit, pur și simplu pentru că este nevoie de mai puțin de caractere.

De exemplu:

something === undefined

vs

something === void 0

Unele metode de minimizare a înlocui nedefinit cu gol 0 pentru acest motiv.

Comentarii (2)

void este un operator care este folosit pentru a returna un "nedefinit" valoare atât browser-ul nu va fi capabil de a încărca o pagină nouă.

Browsere Web va încerca să-și ia ce este folosit ca un URL-ul și încărcați-l excepția cazului în care este o funcție JavaScript care returnează null. De exemplu, dacă am faceți clic pe un link de genul asta:

<a href="javascript: alert('Hello World')">Click Me</a>

apoi un mesaj de alertă va apărea, fără a încărca o pagină nouă, și asta pentru că "alertă" este o funcție care returnează o valoare nulă. Acest lucru înseamnă că, atunci când browserul încearcă să se încarce o pagină nouă se vede nulă și nu are nimic de a încărca.

Un lucru important de reținut despre void operator este că necesită o valoare și nu poate fi utilizat de la sine. Ar trebui să-l folosească ca aceasta:

<a href="javascript: void(0)">I am a useless link</a>
Comentarii (3)

Utilizare de javascript:void(0) înseamnă că autorul HTML este deturnarea element de ancorare în loc de butonul element.

Anchor tag-uri sunt de multe ori abuzat cu onclick eveniment pentru a crea pseudo-butoane de setare a href să "#" sau "javascript:void(0)" pentru a pentru a preveni pagina de răcoritoare. Aceste valori cauza neașteptate comportamentul atunci când copierea/tragerea link-uri, deschiderea link-uri într-o nouă file/windows, marcare, și atunci când JavaScript este încă descărcarea, erori, sau este dezactivat. Acesta transmite, de asemenea, incorectă semantica a tehnologii de acces (de exemplu, cititoare de ecran). În aceste cazuri, este recomandat să utilizați un ` în loc. În general, ar trebui să utilizați numai o ancoră pentru navigare folosind un URL-ul propriu.

Sursa: MDN's ` Pagina.

Comentarii (2)

Pentru a înțelege acest concept unul ar trebui să înțeleagă mai întâi void operator în JavaScript.

Sintaxa pentru void operator este: nule «expr» care evaluează expr și se întoarce nedefinit.

Dacă vă pună în aplicare gol ca o funcție, se pare, după cum urmează:

function myVoid(expr) {
    return undefined;
}

Acest vid operator are o importantă utilizare, care este - aruncarea rezultatul unei expresii.

În unele situații, este important să se întoarcă nedefinit, spre deosebire de rezultatul unei expresii. Apoi, golul poate fi folosit de a se debarasa de acel rezultat. O astfel de situație implică javascript: Url-uri, care ar trebui să fie evitate pentru link-uri, dar sunt utile pentru marcatorii. Când vizitați unul dintre aceste Url-uri, mai multe browsere înlocui documentul curent cu rezultatul evaluării Url "content", dar numai în cazul în care rezultatul nu este nedefinit. Prin urmare, dacă doriți să deschideți o nouă fereastră, fără a schimba în prezent conținutul afișat, puteți face următoarele:

javascript:void window.open("http://example.com/")
Comentarii (5)

De gol operatorul evaluează dat expresie și apoi se întoarce nedefinit. Se evită un refresh al paginii.

Comentarii (0)

Dezvoltatorii Web folosesc javascript:void(0) ""pentru că acesta este cel mai simplu mod de a preveni comportamentul implicit al" o "etichetă. void(*nimic*) întoarce "nedefinit" și este un falsy valoare. și întorcându-se o falsy valoare este ca return false " în "onclick eveniment de" o " etichetă care se preveni comportamentul implicit.

Deci, eu cred că javascript:void(0) este cel mai simplu mod de a preveni comportamentul implicit al " o " etichetă.

Comentarii (0)

Un link-ul trebuie să aibă un HREF țintă să fie specificate pentru a permite-l pentru a fi un ușor de utilizat de afișare a obiectelor.

Cele mai multe browsere nu va analiza avansate de JavaScript într-un

Comentarii (0)

JavaScript: Url-uri în afară; acest lucru este în cazul în care vidul poate fi util pentru a scrie cod mai scurte.

var error1 = false,
    error2 = false,
    error3 = false;

function error1() {

  error1 = true;
}

function myFunction() {

  // You can easily return and call a function at once, if you don't care about myFunction's return value
  if (!someCondition1)
    return error1();

  // What if you want to set a value first?
  if (!someCondition2) {
    error2 = true;
    return
  }

  // Shortest way to return and set a value at once
  if (!someCondition3)
    return void(error3 = true);

  // More code goes here
}
Comentarii (1)

Un alt exemplu în cazul în care este folosit javascript.void(0)` . Am'nu sunt sigur dacă acesta este corect, dar isi face treaba

$(document).ready(function() {
  jQuery(".show-hide-detail").hide();
  jQuery(".show-hide-detail:first").show();
  jQuery(".show-hide-btn a").click(function() {
    var thid_data = jQuery(this).attr('data-id');
    jQuery(".show-hide-btn a").removeClass('active');
    jQuery(this).addClass('active');
    if (!jQuery("#" + thid_data).is(":visible")) {
      jQuery(".show-hide-detail").hide();
      jQuery("#" + thid_data).show();
    }
  });
});
<section>
  <div class="features">
    <div class="container">
      <h1>Room Dimensions</h1>
      <p class="description">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed tempor arcu non ligula convallis, vel tincidunt ipsum posuere.sollicitudin. Duis iaculis, arcu ut hendrerit pharetra, elit augue pulvinar magna
      </p>
      <div class="dimension-btn show-hide-btn">
        <a class="active" data-id="LivingRoom">Living Room</a>
        <a href="javascript:void(0)" data-id="DiningRoom">Dining Room</a>
        <a href="javascript:void(0)" data-id="Kitchen">Kitchen</a>
        <a href="javascript:void(0)" data-id="MasterBedroom">Master Bedroom</a>
        <a href="javascript:void(0)" data-id="Bedroom2">Bedroom 2</a>
        <a href="javascript:void(0)" data-id="Bedroom3">Bedroom 3</a>
        <a href="javascript:void(0)" data-id="Bathroom">Bathroom</a>
        <a href="javascript:void(0)" data-id="Gym">Gym</a>
        <a href="javascript:void(0)" data-id="SwimmingPool">Swimming Pool</a>
      </div>
      <div class="row">
        <div class="LivingRoom Dimension-detail show-hide-detail" id="LivingRoom" style="display: block;"></div>
        <div class="LivingRoom Dimension-detail show-hide-detail" id="DiningRoom" style="display: none;"></div>
        <div class="LivingRoom Dimension-detail show-hide-detail" id="Kitchen" style="display: none;"></div>
        <div class="LivingRoom Dimension-detail show-hide-detail" id="MasterBedroom" style="display: none;"></div>
        <div class="LivingRoom Dimension-detail show-hide-detail" id="Bedroom2" style="display: none;"></div>
        <div class="LivingRoom Dimension-detail show-hide-detail" id="Bedroom3" style="display: none;"></div>
        <div class="LivingRoom Dimension-detail show-hide-detail" id="Bathroom" style="display: none;"></div>
        <div class="LivingRoom Dimension-detail show-hide-detail" id="SwimmingPool" style="display: none;"></div>
        </div>
      </div>
    </div>

</section>
Comentarii (1)