Wenn sich das in den letzten Jahren nicht geändert hat, ist das immer noch nicht STandardkonform. Desweiteren gehört in href="" eune URL und kein Script.
»javascript:«-URLs werden in HTML5 standardisiert.
http://dev.w3.org/html5/spec/webappapis.html#javascript-protocol
Bestätigt meine Aussage. Somit ist er überall, wo nicht HTML5 verwendet wird, falsch.
Warum ist es mieser Stil? Wie sieht das Schließen eines per JavaScript geöffneten Popup-Fenster in gutem Stil aus?
Wenn etwas nicht im Standard ist, ist es automatisch mieser Stil. Oder findest du es gut, wenn jeder Browserhersteller sein eigenes Süppchen kocht und daruch für jeden Browser die Webseite angepasst/getestet werden muss?
Das Einbetten von JavaScript ins HTML, besonders über Inline-Event-Handler, ist allgemein schlechter Stil, ja.
Wo ist der Unterschied von einem Link zu einem Inline-Event-Handler? Wird der Seitenaufbau verzögert oder irgendein Sicherheitsloch geöffnet? Wenn letzteres schlechter Stil ist, würde mich der Unterschied interessieren.
Im Falle einer Funktionalität, die nur bei aktiviertem JavaScript existiert und sichtbar ist, kann man einen »javascript:«-Link aber ohne Probleme verwenden. Siehe auch diese Diskussion.
Eine Diskussion in diesem Forum ist für mich nicht wirklich entscheidend. Das kann mir maximal einen Denkanstoss geben, mehr nicht. Selfhtml ist weder eine Vorschrift noch ein Standard. Weder das Forum noch die Doku.
Beim Öffnen und Schließen von Popups ist das aber ein kleineres Problem – die Referenz auf das window-Objekt des Popups über den globalen Scope zugänglich zu speichern, hat mehr Vorteile.
Ich habe meine erste Aussage nicht aufgrund eines bestimmten Anwendungsfalles getätigt, ich habe lediglich angemerkt, dass javascript: kein Standard und somit falsch ist. Wenn sich das in HTML5 geändert hat, bestätigt das eben diese Aussage. Aber für mich ist HTML5 immer noch ne Randerscheinung, da die Browser es noch nicht komplett unterstützen. Ich hoffe aber, das ändert sich in den nächsten 1-2 Jahren, wenn auch due Nachzügler endlich passende Updates machen.