Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Both the button and the div have the same 'onclick' code, yet the execCommand only seems to work on the button. Is there any way I can make it work when pressing the div?

Here's 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>

like image 757
Shai UI Avatar asked Sep 21 '12 06:09

Shai UI


People also ask

What can I use instead of document execCommand?

The Clipboard API can be used instead of execCommand in many cases, but execCommand is still sometimes useful.

What is document execCommand?

The DOM execCommand() method in HTML DOM is used to execute a command specified by the user on the editable selected section. Syntax: document.execCommand( command, showUI, value )


1 Answers

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

Updated fiddle

like image 93
Konstantin Dinev Avatar answered Oct 24 '22 08:10

Konstantin Dinev