8

按钮和 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>

​</p>

4

3 回答 3

28

您需要阻止mousedowndiv 上的事件,因为它会窃取焦点:

更新的小提琴

于 2012-09-21T06:51:59.497 回答
1

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

1>只为一个 div 设置 execcommand

2>聚焦/单击时选择 contenteditable div 中的所有文本

于 2012-09-21T06:46:16.270 回答
0

对于 Firefox,需要在 execCommand 之前设置 contenteditable = true。

对于 IE,没有必要。

于 2018-03-07T21:18:16.897 回答