onclick="javascript: func ()" vs. onclick="func ()" [duplizieren]

8

Gibt es einen Unterschied zwischen

? %Vor%

und

%Vor%

Soll ich javascript: vor einem JS Funktionsaufruf verwenden?

    
Phat Wangrungarun 20.04.2012, 08:14
quelle

3 Antworten

10

javascript: in einem onwhatever="" -Handler ist ein No-Op. Der Inhalt dieses Attributs ist immer JavaScript, also definiert javascript: ein Label - aber außerhalb von a switch Block oder eine Schleife (wo Sie es zu break / continue auf die Position des Etiketts verwenden können) es tut nichts.

Es wird jedoch davon abgeraten, Inline-Event-Handler zu verwenden, da besser ways , um Ereignishandler zu registrieren.

Obwohl nicht in der Frage erwähnt, ist es erwähnenswert, dass die Verwendung von javascript: im href -Attribut funktioniert (und dort ist es tatsächlich notwendig), aber wird aus verschiedenen Gründen dringend abgeraten:

  • this zeigt nicht auf das Element
  • Wenn eine Funktion aufgerufen wird, die einen Wert zurückgibt, verlässt der Browser die Site
  • Klicken Sie auf den Link mit deaktivierten JavaScript-Pausen
  • Der Versuch, den Link in einem neuen Fenster / Tab zu öffnen, bricht
  • ab

Wenn Sie wirklich Inline-Events verwenden müssen, verwenden Sie immer onclick="" usw. ohne javascript: .

    
ThiefMaster 20.04.2012, 08:16
quelle
1

Wenn Sie sich in einem Attribut onclick befinden, sollten Sie das Präfix javascript: nicht verwenden. Dies ist nützlich, wenn Sie möchten, dass eine Verbindung <a /> eine JS-Funktion behandelt, zum Beispiel:

%Vor%     
sp00m 20.04.2012 08:16
quelle
1

javascript:func() verwendet das JavaScript-Protokoll dass es in einem Anker href -Attribut verwendet werden könnte. Machen Sie dies jedoch nicht Warum ist es eine schlechte Praxis, Links mit dem javascript: "Protokoll" zu verwenden? , um mehr zu erfahren Informationen.

Event-Handler sind vorzuziehen, um Ereignisse anstelle von Attributen auszulösen.

    
detaylor 20.04.2012 08:19
quelle

Tags und Links