2012-09-21 13 views
6

Sia il pulsante che il div hanno lo stesso codice 'onclick', eppure execCommand sembra funzionare solo sul pulsante. C'è un modo per farlo funzionare quando si preme il div?Perché il document.execCommand non funziona quando clicco su un div?

Ecco il mio violino: http://jsfiddle.net/foreyez/ZzL8y/

<button onclick="document.execCommand('bold',false,null);">Bold</button> 
<div onclick="document.execCommand('bold',false,null);" style='border:1px solid black;width:50px;'>Bold</div> 

<div id='input' contenteditable='true'> 
    select some of this text and then hit one of the buttons above 
</div> 

+0

Suppongo che non funzioni con il div perché si perde messa a fuoco e selezione. Con il pulsante viene mantenuta la messa a fuoco. – DeadAlready

risposta

21

È necessario impedire l'evento mousedown sul div perché ruba il fuoco:

Updated fiddle

+0

brillante konstantin! – Anthony

0

Per Firefox, è necessario impostare contenteditable = true prima execCommand.

Per IE non è necessario.

Problemi correlati