单击div时,为什么document.execCommand不起作用?

时间:2012-09-21 06:04:42

标签: javascript html5

按钮和div都有相同的'onclick'代码,但execCommand似乎只对按钮有效。按下div时有什么方法可以使它工作吗?

这是我的小提琴: 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>

3 个答案:

答案 0 :(得分:22)

您需要阻止div上的mousedown事件,因为它会破坏焦点:

Updated fiddle

答案 1 :(得分:1)

看到这个小提琴: - http://jsfiddle.net/ZzL8y/4/
这不是完整的答案,但这些链接可能对您有所帮助: -

1&GT; set execcommand just for a div

2 - ; select all text in contenteditable div when it focus/click

答案 2 :(得分:0)

对于Firefox,必须在execCommand之前设置contenteditable = true。

对于IE,没有必要。