Domanda

Sto prendendo in giro con contenuti e esecuzione, e sto cercando di farlo in modo che quando viene premuto un pulsante,

  • Se c'è un testo selezionato nel content di HEDEDIBILE, diventa in grassetto

  • Se non è stato selezionato alcun testo nel content di HEDEDIBILE, allora qualsiasi testo digitato nel contenuto dopo aver premuto il pulsante è in grassetto

Ho provato a usare il seguente comando JavaScript:

 document.execCommand('bold', false, null);

Ma sfortunatamente, ciò provoca solo il testo selezionato per diventare in grassetto; Se non viene selezionato alcun testo e si inizia a digitare dopo aver premuto il pulsante, il testo viene visualizzato.

Ho notato che se premo CTRL+B nel content di The ContentEdible, fa esattamente quello che vorrei realizzare, ma mi piacerebbe farlo usando JavaScript (e senza simulare un Ctrl+B in JavaScript).

È stato utile?

Soluzione

In realtà il document.execCommand() la chiamata fa esattamente quello che vuoi (puoi dimostrarlo chiamandolo da a keydown gestore di eventi), e sospetto che sia l'effetto di qualunque pulsante o qualsiasi altra cosa tu possa usare per attivare il comando che è il problema.

Altri suggerimenti

La gamma JavaScripts può controllare il testo selezionato, vedi questo link. È possibile utilizzarlo per ottenere il testo selezionato (startNode, endnode, offset ecc.). Se vuoi che il nuovo testo sia audace, aggiungilo in un nuovo creato <p> che dai audaci in CSS. Ma questo potrebbe non funzionare in IE ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top