2012-09-21 3 views
6

Sowohl der Button als auch das div haben den selben "onclick" Code, aber der execCommand scheint nur auf dem Button zu funktionieren. Gibt es einen Weg, wie ich es schaffen kann, wenn ich div drücke?Warum funktioniert der document.execCommand nicht, wenn ich auf ein div klicke?

Hier ist meine Geige: 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

Ich denke, es funktioniert nicht mit dem Div, weil Sie Fokus und Auswahl verlieren. Mit der Taste wird der Fokus beibehalten. – DeadAlready

Antwort

21

Sie benötigen die mousedown Ereignis auf Ihrem div zu verhindern, weil es den Fokus stiehlt:

Updated fiddle

+0

brillante Konstantin! – Anthony

0

Für Firefox, ist es notwendig, contenteditable = true vor execCommand einzustellen.

Für IE ist es nicht notwendig.

Verwandte Themen