Ciao a tutti. È una vita che non scrivo e non sono riuscito a trovare la soluzione leggendo i post già esistenti.

Ho un form con bottoni che via js inseriscono i tag per la formattazione. Funziona tutto perfettamente anche con Firefox, solo che...

se il testo è lungo e la textarea presenta la barra di scorrimento, non appena viene cliccato un bottone e inserito il codice desiderato, il cursore resta sì dove dovrebbe rimanere, ma la textarea scrolla di nuovo in sù ed è molto snervante dover scrollare di nuovo giù per continuare il lavoro.

aggiungo la parte di codice riguardante ff. Preciso nuovamente che il focus ritorna giusto, è solo lo scroll che torna sù. Sembra un bug di ff.
Grazie per qualsivoglia aiuto.Ciao a tutti. È una vita che non scrivo e non sono riuscito a trovare la soluzione leggendo i post già esistenti.

Ho un form con bottoni che via js inseriscono i tag per la formattazione. Funziona tutto perfettamente anche con Firefox, solo che...

Ciao a tutti. È una vita che non scrivo e non sono riuscito a trovare la soluzione leggendo i post già esistenti.

Ho un form con bottoni che via js inseriscono i tag per la formattazione. Funziona tutto perfettamente anche con Firefox, solo che...

se il testo è lungo e la textarea presenta la barra di scorrimento, non appena viene cliccato un bottone e inserito il codice desiderato, il cursore resta sì dove dovrebbe rimanere, ma la textarea scrolla di nuovo in sù ed è molto snervante dover scrollare di nuovo giù per continuare il lavoro.

aggiungo la parte di codice riguardante ff. Preciso nuovamente che il focus ritorna giusto, è solo lo scroll che torna sù. Sembra un bug di ff.
Grazie per qualsivoglia aiuto.

--------------------------
/* per Gecko Browser (Firefox, Mozilla 1.7) */
else if(typeof input.selectionStart != 'undefined')
{
/* inserisci codice */
var start = input.selectionStart;
var end = input.selectionEnd;
var insText = input.value.substring(start, end);
input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
/* riposiziona cursore */
var pos;
if (insText.length == 0) {
pos = start + aTag.length;
} else {
pos = start + aTag.length + insText.length + eTag.length;
}
input.selectionStart = pos;
input.selectionEnd = pos;
}
--------------------