Data un'area di testo con un carattere di larghezza non fissa, desidero sapere sulla chiave su se il segno di omissione (come indicato da element.selectionEnd
) è nella prima riga o nell'ultima riga del testo.Il segno di omissione si trova sulla prima riga della textarea? Sull'ultima riga?
Per evitare risposte negative, qui ci sono alcune soluzioni che Non lavoro:
- Splitting su
\n
: Una frase può essere suddiviso in due linee, perché è troppo lungo per la larghezza della textarea. - Misurazione del testo prima del cursore (ad esempio copiando il testo in un div con lo stesso stile e misurando l'altezza dello span): Alcuni caratteri dopo il il cursore può cambiare il punto di avvolgimento (di solito tra le parole).
Ecco un violino per le prove e per rimuovere una certa ambiguità (sì, è un elemento textarea
, e non è solo una linea, ecc): http://jsbin.com/qifezupu/4/edit
Note:
- I non preoccuparti di Internet Explorer 9 o dei browser mobili.
- Ho bisogno di una soluzione affidabile, che funzioni per tutte le posizioni del cursore.
- Ci sono molti dettagli complicati che rendono praticamente inutilizzabili molte idee, per favore costruite un violino funzionante prima di rispondere.
Penso che con puro 'textarea' non è possibile (a mio parere) Ma se è possibile utilizzare alcuni editor di cui analizzare una html puro allora si può definire quale linea è l'ultimo e quale è il primo . –