2012-10-04 3 views
5

Eventuali duplicati:
Identify whether the selected text in a web page is bold nor notCome posso verificare se il testo sotto il cursore in un div contenteditable è "bold"

ho creato un div contenteditable, e questo era abbastanza semplice.

Ho anche aggiunto un controllo sulla parte superiore del div per evidenziare e slegare il testo.

Ora, desidero applicare uno stile al pulsante in base allo stato in grassetto del testo sotto il cursore, ad esempio: se il testo sotto il cursore è in grassetto, vorrei che l'icona in grassetto avesse il bordo "inserito". e se non è audace, vorrei che l'icona in grassetto fosse senza bordi.

Come posso controllare lo stile dell'elemento sotto il cursore?

link al codice come è ora: http://jsfiddle.net/aCp7M/

+3

sarebbe utile mostrarci il codice –

+0

alcuni progressi con questo? – rsz

+0

Ho aggiunto un link al mio codice. Vorrei che l'icona "B" fosse visualizzata con un bordo quando il testo sotto il cursore è in grassetto. – Alterlife

risposta

9

Qui sono: http://jsfiddle.net/vvCzD/

Usa document.queryCommandValue("Bold") per controllare che il testo alla posizione del cursore è in grassetto e così via. Tutti gli identificatori di comando possibili sono descritti here.


UPD: Come Tim indicati di seguito, un metodo corretto per ottenere le proprietà booleane-simili è queryCommandState.

+6

Credo che 'document.queryCommandState (" Bold ")' è il metodo corretto per grassetto. 'queryCommandValue()' è usato per i comandi che hanno un valore (come "fontName") piuttosto che semplicemente commutando. –

+1

Ecco un jsFiddle aggiornato: http://jsfiddle.net/vvCzD/1/ –

+0

@TimDown, grazie per il suggerimento. Hai completamente ragione. –