Was bedeutet "javascript: void (0)"?
<a href="javascript:void(0)" id="loginlink">login</a>
Ich habe gesehen, wie href
s viele Male, aber ich weiß nicht, was genau das bedeutet.
Kommentar zu dem Problem
javascript:
ist eine der viele URI-Schemata verwenden: en.wikipedia.org/wiki/URI_scheme, wie Daten:
. Sie können nur
href="javascript:"
für den gleichen Zweck. Wie bereits in der Antwort für diese Frage, die void(0)
- Teil wurde ursprünglich für die frühen Versionen von Browsern (wobei javascript:
für die URI-Verarbeitung war anders. Aber nun konnte ich nicht einmal eine version, wo die Kürzel nicht funktionieren würde, zumindest IE7 verarbeitet diese richtig. Ich habe auch gesehen href="javascript://", ist das besser?
href="javascript://" ist nicht für mich arbeiten void(0) funktioniert perfekt.
Diese Duplikate stackoverflow.com/questions/38655639/javascript-if-x-void-0
InformationsquelleAutor der Frage omg | 2009-08-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer Erklärung ist hier zu sehen:
void
- operator.Der Grund würden Sie wollen, dies zu tun mit der
href
einer Verknüpfung ist, dass normalerweise einejavascript:
URL leitet den browser zu einem nur-text-version der das Ergebnis der Evaluierung, dass JavaScript. Aber wenn das Ergebnis istundefined
, dann wird der browser bleibt auf der gleichen Seite.void(0)
ist nur eine kurze und einfache Skript ausgewertetundefined
.InformationsquelleAutor der Antwort rahul
Neben den technischen Antwort
javascript:void
bedeutet, dass der Autor etwas Falsch.Gibt es keinen guten Grund für die Verwendung einer
javascript:
pseudo-URL(*). In der Praxis wird es dazu führen, Verwirrung oder Fehler, sollte jemand versuchen, Dinge wie "Lesezeichen-link', 'link öffnen im neuen tab', und so weiter. Das passiert Recht viel jetzt Menschen haben sich gewöhnt, um mit der mittleren Maustaste für neuen tab: es sieht aus wie ein link, den Sie möchten, es zu Lesen in einem neuen tab, aber es stellt sich heraus, dass kein echter link, und gibt unerwünschte Ergebnisse, die wie eine leere Seite oder eine JS-Fehlermeldung, wenn die Mitte geklickt.<a href="#">
ist eine gängige alternative, die könnte wohl sein, weniger schlecht. Allerdings müssen Sie daran denkenreturn false
von Ihremonclick
event-handler, um zu verhindern, dass dem link gefolgt wird und scrollen Sie bis zum oberen Rand der Seite.In einigen Fällen kann es ein nützlicher Ort, zeigen Sie den link zu. Zum Beispiel, wenn Sie ein Steuerelement können Sie auf klicken, öffnet sich eine vorher verborgene
<div id="foo">
, es macht Sinn zu verwenden<a href="#foo">
mit ihm zu verbinden. Oder wenn es ein non-JavaScript-Weg zu tun die gleiche Sache (zum Beispiel, ‘thispage.php?show=foo' , setzt foo sichtbar, um mit zu beginnen), können Sie auf diesen link.Sonst, wenn ein link verweist nur auf script, es ist nicht wirklich ein link und sollte nicht sein markiert als solcher. Die übliche Vorgehensweise wäre, den
onclick
zu einem<span>
,<div>
oder eine<a>
ohnehref
und Stil in irgendeiner Weise deutlich zu machen, Sie können darauf klicken. Dies ist, was StackOverflow [auch zu der Zeit des Schreibens; jetzt verwendet erhref="#"
].Der Nachteil dieser ist, dass Sie verlieren, Steuerung mit der Tastatur, da kann man nicht tab auf ein span/div/bare-a oder aktivieren mit space. Ob dies tatsächlich ein Nachteil ist, hängt davon ab, welche Art von Aktion ist das element nehmen soll. Sie können, mit einiger Anstrengung, Versuch zu imitieren, die Tastatur interactability durch hinzufügen einer
tabIndex
auf das element, Zuhören und Raum Tastendruck. Aber es wird niemals zu 100% reproduzieren Sie das browser-Verhalten, nicht zuletzt, weil die verschiedenen Browser reagieren auf die Tastatur anders (nicht zu erwähnen, nicht-visuelle Browser).Wenn Sie wirklich wollen, ein element, das nicht einen link, aber, die aktiviert werden können, wie normal mit der Maus oder Tastatur, was Sie wollen, ist eine
<button type="button">
(oder<input type="button">
ist genauso gut, für einfachen Text). Sie können immer Hilfe von CSS umzugestalten, so sieht es mehr wie ein link als Schaltfläche, wenn Sie möchten. Aber da verhält es sich wie ein Knopf, das ist, wie wirklich sollten Sie zu markieren.(*: Website-authoring, sowieso. Offensichtlich sind Sie nützlich für bookmarklets.
javascript:
pseudo-URLs sind eine konzeptionelle bizarreness: ein locator, der nicht auf einen Punkt, sondern fordert aktive code innerhalb der aktuellen Lage. Sie verursacht haben massive Sicherheitsprobleme für beide Browser und webapps, und hätte niemals erfunden von Netscape.)InformationsquelleAutor der Antwort bobince
Es heißt, es werde nichts zu tun. Es ist ein Versuch, den link nicht zu 'navigieren' überall. Aber es ist nicht der richtige Weg.
Sollten Sie eigentlich nur
return false
imonclick
Ereignis, etwa so:In der Regel ist es verwendet, wenn der link dabei einige JavaScript-y' - Sache. Wie buchen Sie einen AJAX-form, oder das austauschen eines Bildes, oder was auch immer. In diesem Fall werden Sie nur machen, was Funktion aufgerufen wird, zurück
false
.Machen Sie Ihre website ganz großartig, aber in der Regel Sie ' ll enthalten einen link, der macht die gleiche Aktion, wenn die person, durchsuchen Sie wählt, nicht JavaScript.
InformationsquelleAutor der Antwort Noon Silk
Ist es ein RIESIGER Unterschied im Verhalten von "#" vs javascript:void
"#" blättert Sie OBEN auf der Seite
während "javascript:void(0);" nicht.
Dies ist sehr wichtig, wenn Sie Codierung von dynamischen Seiten.
der Benutzer will nicht zurück zu gehen nach oben, nur weil er auf einen link geklickt, auf der Seite.
InformationsquelleAutor der Antwort Salvin Francis
Ist es sehr beliebt zum hinzufügen von JavaScript-Funktionen in die HTML-link, zum Beispiel: die
[Print]
link, sehen Sie auf vielen Webseiten. Code ist wie:Warum brauchen wir
'href'
während'onclick'
allein kann den job zu erledigen? Denn wenn wir weglassen, die'href'
, wenn Benutzer die Maus über den text "Drucken" der cursor wird zu "ich". Mit'href'
ermöglichen Sie den cursor, um anzuzeigen, als wenn es einen hyperlink: ein Handcursor.PS: Es gibt zwei Methoden: 1.
href="javascript:void(0);"
und 2.href="#"
- beide haben den gleichen Effekt. Aber die 1. muss JavaScript eingeschaltet sein web-browser, während die zweite nicht. Also das zweite scheint mehr kompatibel.InformationsquelleAutor der Antwort Huy - Vuong Do Thanh
Sollten Sie immer einen href auf Ihre eine - tags. Eine JavaScript-Funktion aufrufen, die gibt 'undefined' tun gut. So wird die Verknüpfung zu '#'.
Anker-tags im Internet Explorer 6 ohne href nicht bekommen, die
a:hover
Stil angewendet.Ja, es ist schrecklich und ein kleineres Verbrechen gegen die Menschlichkeit, aber dann wieder so ist der Internet Explorer 6 im Allgemeinen.
Ich hoffe, das hilft.
Internet Explorer 6 ist eigentlich ein großen Verbrechen gegen die Menschlichkeit.
InformationsquelleAutor der Antwort jscharf
Den
void
- operator wertet den angegebenen Ausdruck aus und dann gibt Sie undefined zurück.Es vermeidet die Seite aktualisieren.
InformationsquelleAutor der Antwort Abhay Singh
void
ist ein operator, der verwendet wird, um wieder eineundefined
Wert, damit der browser nicht in der Lage sein, zu laden, eine neue Seite.Web-Browser werden versuchen, und nehmen, was wird verwendet, wie eine URL, und laden Sie es, es sei denn, es ist eine JavaScript-Funktion, die den Wert null zurück. Wenn wir z.B. auf einem link wie diesem:
dann eine Warnmeldung wird angezeigt, ohne das laden einer neuen Seite, und das ist, weil
alert
ist eine Funktion, die einen Nullwert zurückgibt. Dies bedeutet, dass, wenn der browser versucht zu laden, eine neue Seite sieht es null und nichts zu laden.Eine wichtige Sache zu beachten über den void-operator ist, dass es muss ein Wert und kann nicht allein verwendet werden. Wir sollten es verwenden, wie diese:
InformationsquelleAutor der Antwort Amr
Erwähnenswert ist es, dass Sie manchmal sehen, void 0, wenn die überprüfung für nicht definierte, einfach, weil es benötigt weniger Zeichen.
Beispiel:
vs.
Einige minifizierung Methoden ersetzen Undefinierte mit void 0 für diesem Grund.
InformationsquelleAutor der Antwort Squall
Nutzung von
javascript:void(0)
bedeutet, dass der Autor der HTML-missbraucht, das anchor-element an Stelle des button-element.Quelle: MDN
<a>
- Seite.InformationsquelleAutor der Antwort Ron Royston
Zu verstehen, dieses Konzept sollte man zuerst verstehen, den void-operator in JavaScript.
Die syntax für den void-operator:
void «expr»
die evaluiert expr und gibt Sie undefined zurück.Wenn implementieren Sie void als eine Funktion, es sieht wie folgt aus:
Diese void-operator hat eine wichtige Verwendung ist - verwirft das Ergebnis eines Ausdrucks.
In manchen Situationen ist es wichtig undefined zurück im Gegensatz zum Ergebnis eines Ausdrucks. Dann erlischt die verwendet werden können, um Sie zu verwerfen. Eine solche situation beinhaltet javascript: - URLs, die vermieden werden sollten für die links, aber sind nützlich für bookmarklets. Wenn Sie besuchen eine dieser URLs viele Browser das ersetzen des aktuellen Dokuments mit dem Ergebnis der Auswertung der URLs "Inhalt", aber nur, wenn das Ergebnis ist nicht undefiniert. Also, wenn Sie wollen, öffnen Sie ein neues Fenster ohne ändern der derzeit angezeigten Inhalte, können Sie Folgendes tun:
InformationsquelleAutor der Antwort Gopal Yadav
Muss eine Verbindung haben, die ein HREF-Ziel angegeben werden, um es zu aktivieren zu sein, eine verwendbare Anzeige-Objekt.
Den meisten Browsern wird nicht analysiert erweiterte JavaScript in einer
tag wie:
da der HREF-Tags wird in den meisten Browsern nicht zulassen, Leerraum, oder konvertiert Leerzeichen zu %20, das HEX-äquivalent, in einem RAUM, was macht Ihr JavaScript absolut nutzlos für den Dolmetscher.
Also, wenn Sie möchten, verwenden Sie EIN a-HREF-tag zum ausführen von inline-JavaScript-Code, geben Sie einen gültigen Wert für HREF ERSTE, der nicht zu Komplex (keine Leerzeichen enthalten darf), und geben Sie dann den JavaScript-Code in einem Ereignis-Attribut-tag, wie OnClick, OnMouseOver, OnMouseOut, etc.
Die typische Antwort ist, so etwas zu tun:
Dies funktioniert gut, aber es macht die Seite der Sprung an die Spitze, weil die Raute/hash-tag erzählt, es zu tun.
Nur die eine Raute/hash-tag in EINEN a HREF-tag tatsächlich gibt die root-Anker, der wird immer standardmäßig der Obere Rand der Seite, können Sie einen anderen Speicherort angeben, indem Sie über die Angabe des NAME-Attribut in EINEM a HREF-Link.
Können Sie dann ändern Sie Ihre A-HREF-tag, um zu springen, um 'middleofpage' ein und führen Sie den JavaScript-Code in das OnClick-Ereignis, wenn das passiert etwa so:
Wird es VIELE Zeiten, in denen Sie nicht wollen, dass link springen um, so kann man zwei Dinge tun:
Nun wird Sie nirgends, wenn darauf geklickt, aber es könnte die Seite zu zentrieren, sich von seiner aktuellen viewport. Das ist nicht schön. Was ist der beste Weg, um in-line-javascript, mit A HREF, aber ohne zu tun alle der oben genannten? JavaScript:void(0);
Diese teilt dem browser mit, zu gehen NIRGENDWO, sondern führen Sie die gültigen JavaScript:void(0); Funktion zuerst in das "HREF" - tag, denn Sie enthält keine Leerzeichen und werden nicht analysiert werden, wie eine URL. Es wird stattdessen ausgeführt werden, indem der compiler. VOID ist ein Schlüsselwort, das, wenn geliefert mit einem perameter 0 "UNDEFINED" zurückgibt, der nicht mehr Ressourcen, um einen return-Wert, der auftreten würde, ohne Angabe 0 (es wird mehr Speicher-management/performance-freundlich).
Ist das nächste was passiert ist das OnClick ausgeführt wird. Die Seite wird nicht verschoben, es passiert nichts display-Weise.
InformationsquelleAutor der Antwort Matth3w
JavaScript: - URLs beiseite; dies ist, wo leere kann nützlich sein, zu schreiben, kürzeren code.
InformationsquelleAutor der Antwort Maciej Krawczyk