dedlfix: onclick funktion funktioniert nach verwendung teilweise nicht..

Beitrag lesen

Tach!

else muss direkt auf den Block nach if folgenden – du hast aber location.href=Link; dazwischen platziert, das ist ein Syntaxfehler.
Das tut es auch, wenn du genau hinschaust wirst du sehen das:

Mit ordentlichen Einrückungen wäre es besser zu erkennen, was sich in welchem if befindet.

Und wieso wiederholst du dich eigentlich ständig? Da ist jede Menge Kram, der in allen ifs der gleiche ist …
Es gibt 4 Sprachen. Also 4 dafür vorgesehne Funktions Teile, diese sind villeicht auf den ersten Blick gleich aber wen du dich genau achtest gibt es einen wesentlichen unterschied...

Auch das ist kein Grund, sich wegen eines Parameters zu den anderen 99% zu wiederholen. Funktion mit Parametern sind längst erfunden. Alternativ ein einziger allgemeiner Block und die spezifische Unterscheidung an Ort und Stelle vornehmen.

Anderes Thema: Ein {}-Block allein bildet noch keinen eigenen Scope. Funktionen bilden Scope-Grenzen. Und innerhalb eines Scopes ist es nicht notwendig, Variablen mehrfach mit var zu deklarieren. Selbst wenn der Code zur Laufzeit bestimmte Zweige nicht abläuft, wird das var eines anderen Zweigs berücksichtigt, denn das passiert schon irgendwo zwischen Parsen und Ausführen. Das Schlüsselwort let hingegen ist dafür gedacht, Variablen nur im umschließenden Block geltend zu machen. Aber das ist recht neuer Javascript-Standard und wird auch nicht mehr in noch existierende ältere Browser rückportiert werden. Einen Polyfill (Ersatzcode) kann es dafür auch nicht geben.

dedlfix.