我正在尝试制作类似这个简单文本编辑器的东西:
contenteditable text editor。
我正在使用AngularJS v1.1.4它在firefox lates上工作正常,但在chrome最新的按钮不起作用。这是一个plunker example。
问题比我想象的要复杂得多。
具有contenteditable div的文本编辑器的示例在某种程度上起作用:
单击选中文本的粗体按钮时,文本变为粗体,但光标或插入符号(使用键盘键入时移动的内容)并不总是可见。
但是当使用iframe方法时,iframe是不可点击的。
具有contenteditable div的文本编辑器的示例在某种程度上起作用:
当我单击带有文本选择的粗体按钮时没有任何反应,但是当我通过控制台调用命令时它会起作用(很奇怪)。
iframe方法在这里工作正常。
任何帮助,提前谢谢。
答案 0 :(得分:2)
要在Chrome中使用,您必须使用ng-mousedown
而不是ng-click
。
由于非常简单的原因,它在非帧模式下不能与ng-click
一起使用。单击按钮以设置文本格式时,焦点将从可编辑区域中丢失,并且在执行命令时不会选择任何文本。但是mousedown事件发生在焦点丢失之前,因此你最终会从编辑器中失去焦点和选择,但是在焦点丢失之前就会执行命令。