Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    problemi scroll textarea con firefox + js

    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;
    }
    --------------------

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    al momento puoi risolvere solo cosi': prima di manipolare la parte selezionata salvati in variabile lo scrollTop dell' elemento e ripristinalo dopo la manipolazione
    codice:
     /* per Gecko Browser (Firefox, Mozilla 1.7) */
    else if(typeof input.selectionStart != 'undefined')
    {
    /* inserisci codice */
    var fromTop=input.scrollTop;
    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;
    input.scrollTop=fromTop;
    }
    ciao

  3. #3
    Grazie Xinod, funziona perfettamente, ti offro un bicchiere... :-)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.