Why doesn't document.execCommand work when I click on div?

Both buttons and div have the same onclick code, but execCommand only works on the button. Is there any way to make it work when I click div?

Here is my fiddle: 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> 

+6
source share
3 answers

You need to prevent the mousedown event on your div because it steals focus:

Updated fiddle

+21
source
+1
source

For Firefox, set contenteditable = true before execCommand.

For IE is not necessary.

0
source

Source: https://habr.com/ru/post/925895/


All Articles