HTML/BB-Code über Button mit FireFox springt hoch -> Lösu

Was gefällt euch gut, was weniger gut an 4Players?

Moderatoren: Moderatoren, Redakteure

Antworten
Benutzeravatar
Flanger
Beiträge: 1643
Registriert: 01.08.2007 00:34
Persönliche Nachricht:

HTML/BB-Code über Button mit FireFox springt hoch -> Lösu

Beitrag von Flanger »

Hi 4Players-Webmasters,

mir ist aufgefallen, dass Ihr einen gängigen Bug beim Einfügen von HTML/BB-Code über HTML-Buttons unter FireFox habt. Wenn der Text in der Textarea an Zeilen über die native, vertikale Größe der Textarea hinausgeht und Scrolling (gemäß overflow) einsetzt, springt das Scrolling der Textarea automatisch wieder nach oben, sobald man einen der Einfügen-Buttons benutzt, obwohl der Fokus und die Selection korrekt bleiben. Ich hatte das gleiche Problem, bei einer meiner Frameworks und habe dafür eine Lösung:

Alles was Ihr tun müsst, ist den folgenden Code in Eure Insertfunctions (z.B. emoticon(text)) einzufügen (den IE sollte es nicht kehren, selbst wenn Ihr den Code für ihn nicht ausschließt):

Code: Alles auswählen

function BeispielInsertFunction(text) {
 // erst das Übliche ^^
 var txtarea = document.post.message;
 // Jetzt die entscheidende Codezeile
 prevTop = txtarea.scrollTop;
 // Jetzt der normale Insertcode
 <InsertCode>
 // Am Ende vor dem focus() die zweite entscheidende Zeile
 txtarea.scrollTop = prevTop;
 // Erst dann wieder normal weiter mit focus()
 txtarea.focus();
}
EDIT: Noch eine kleine Erläuterung zum Bugfix: Die textarea hat eine Eigenschaft, die die aktuelle Scrollposition speichert (scrollTop). Diese kann sowohl abgefragt, als auch gesetzt werden. Während einer Änderung der "value"-Eigenschaft geht dieser Wert verloren (was dazu führt, dass die textarea wieder ganz nach oben scrollt). Durch die beiden Codezeilen wird der Wert einfach zwischengespeichert und schließlich scrollt die textarea wieder (unsichtbar) zu der letzten Position.

Ich hoffe, das hilft weiter. Mich würde es jedenfalls freuen nicht mehr ständig runterscrollen zu müssen, wenn ich mir das Leben bei längerem Text leicht mache. ^^

Abgesehen davon wollte ich mal etwas positives zum Forum beitragen. ^^

Viele Grüße an Marco und den Rest!

PS: Wenn Ihr die Bugtrackerseite braucht, wo ich das gefunden habe, suche ich die noch raus.
Antworten