.nils.: ist das "unobstrusive"?

Beitrag lesen

Hallo,

Ist es dann nicht eine moderne, saubere Verwendung von Stylesheets und Javascript (gesetzt den Fall, das es "valides" Javascript/css ist)?

Nein! Bei Unobtrusive JavaScript geht es um Zugänglichkeit, Funktionalität und Nützlichkeit. Unobtrusive JavaScript geht von einem autonom funktionierenden HTML-Dokument aus und fügt dem - ohne dass JavaScript-Code selbst ins Dokument verwoben wird - nützliche Zusatzfunktionalität hinzu.
Die Schichten für Inhalt/Struktur, Präsentation und Interaktivität sind also codemäßig getrennt und alles ist abwärtskompatibel bzw. schrittweise reduzierbar.

Aber die Schichten sind bei meinem Beispiel doch getrennt.

Natürlich kann es in dem Fall trotzdem sinnvoll sein, HTML- und JavaScript-Code möglichst zu trennen und die Event-Handler mit JavaScript zu vergeben. Aber diese Trennung entfaltet in dem Fall nicht seine Vorteile und barrierefrei ist das Ergebnis auch nicht.

Ich möchte eine komplexe Javascript-Schachapplikation erstellen, bei der man auf einem Brett Züge ausführen kann, die dann auch in einer Zugliste dargestellt werden und andere Features. Auch Zugriff auf eine Datenbank via Ajax ist geplant... Das ganze soll auch so gestaltet sein, das es einer beliebigen Html-Seite einfach hinzugefügt werden kann, indem man nur das Javascript referenziert (die divs und spans in meinem Beispiel würde ich mit javascript erzeugen). Das ist doch unobstrusive...

Wenn ich es so mache, das es auch mit abgeschaltetem Javascript/css funktioniert, müsste eben die Seite bei jedem Klick auf ein Feld neugeladen werden, wie es zum Beispiel bei itsyourturn.com oder bei gameknot.com gehandhabt wird.
Ich frage mich, ob das nicht ein bischen am Ziel vorbeigeschossen ist, vor allem, weil es mich Monate kosten würde, den User aber nur dreißig Sekunden, um Javascript einzuschalten. Ich müsste große Teile (Zum Beispiel die Zugvalidierung) zweimal schreiben, einmal für php/python und einmal für javascript. Außerdem liegt die Betonung mehr auf der zügigen Analyse der Stellung, und für jeden Halbzug die Seite zweimal neu zu laden...

Dir geht es höchstens bloß um die Auslagerung des JavaScriptes. Zu deinem Code daher noch die Anmerkung: Event-Handler registrieren durch ein einfaches element.onevent = handlerfunktion;. Kein Attribut, schon gar nicht ein Attributknoten! Überhaupt keine Strings in den on..-Eigenschaften speichern, sondern nur Funktionsobjekte. Wenn tuwas("a1") aufgerufen werden soll, schreibst du z.B. element.onclick = function () { tuwas("a1"); };

Das ist ein interessanter Punkt. Ich wollte es eigentlich so machen, habs aber nicht hingekriegt mit der Übergabe von Parametern. Danke.
Was ist denn eigentlich der Vorteil bei der von Dir empfohlenen Schreibweise? Ist Sie schneller?

Gruß, Nils