2012-09-21 18 views
6

Zarówno przycisk, jak i element div mają ten sam kod "onclick", ale polecenie execCommand wydaje się działać tylko na przycisku. Czy jest jakikolwiek sposób, który sprawi, że zadziała po naciśnięciu przycisku div?Dlaczego dokument.execCommand nie działa po kliknięciu elementu div?

Oto moje skrzypce: 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

Im domyślam się, że to nie działa z div, ponieważ tracisz ostrość i selekcję. Za pomocą przycisku utrzymywane jest ostrość. – DeadAlready

Odpowiedz

21

Trzeba zapobiec zdarzenie mousedown na div ponieważ kradnie ostrość:

Updated fiddle

+0

genialny konstantin! – Anthony

0

Dla Firefox, trzeba ustawić contenteditable = true przed ExecCommand.

Dla IE nie jest to konieczne.

Powiązane problemy