Thomas 'PointedEars' Lahn <PointedEars (AT) web (DOT) de> wrote:
Quote:
Verwende das onload-Event-Handler-Attribut des body-Elements. |
Du weisst aber schon, das das die schlechteste aller Lösung für dieses
Problem ist. Und insbesondere kann diese Lösung auch Sicherheitsprobleme
aufwerfen, wenn der User eine solche Seite aufruft und nicht alleine
ist. Man stelle sich vor, die Seite lädt, das Formular (ein
Login-Formuar) ist da, der User fängt an seinen Usernamen und Passwort
einzugeben. Während der Passorteingabe ist die Seite fertig mit laden,
und jetzt schlägt der onload-Handler zu und setzt den Focus auf das
erste Eingabefeld (das mit dem Usernamen). Der User merkt das natürlich
nicht sofort, und schreibt nun sein Passort munter für alle Anwesenden
lesbar im Klartext ins Feld für den Usernamen zuende.
Selbst wenn niemand zusieht, ist das natürlich kontroproduktiv, denn
anstatt dem User zu "helfen" und Arbeit abzunehmen (der Klick ins erste
Eingabefeld soll ja entfallen), mutet man ihm zusätzliche Arbeit auf,
weil er seine Eingaben nun korrigieren muß, oder warten muß, bis die
Seite auf tatsächlich fertig geladen ist (letzteres geht nur, wenn man
weiß, was die Seite überhaupt für Schweinereien anstellt).
Wenn man unbedingt einen Focus setzen will (das öfters als man denkt
kontraproduktiv), dann auf alle Fälle nicht(!) über einen
onload-Handler, sondern direkt in einen Script-Block der irgendwo hinter
dem zu fokusierenden Input-Element steht. Dort kann man dann direkt das
machen, was man sonst im onload-Handler gemacht hätte, das wird dann
sofort beim Parsen/Rendern des Codes ausgeführt und nicht erst wenn auch
das letzte Bild fertig geladen wurde.
Am besten lässt man das aber ganz sein, und überlässt es dem User zu
entscheiden. Wo im Formular (und ob überhaupt) er seine Eingaben zuerst
machen will.
Quote:
Ausnamhsweise[tm](!) müsste der Code in Deinem Fall komplett inline sein: |
Warum?
--
Alexander