我正在使用jHTMLArea jQuery插件(http://jhtmlarea.codeplex.com/)。它使用嵌入式iframe创建了一个简单的WYSIWYG编辑器。我想摆脱iframe并改为使用ContentEditable div。
问题是我可以让它运行execcommand函数,以便格式化更改应用于编辑器。
查看http://jsfiddle.net/mwillmott/neXkk/以了解我的实施情况。
任何帮助将不胜感激!
答案 0 :(得分:1)
如果您使用Firebug在Firefox中尝试小提琴,则答案的一部分会显示在控制台中。问题是document.execCommand()
需要三个参数:
document.execCommand("Bold", false, null);
第二个是特定于IE的旧版本,几乎总是false
。最后一个是与命令关联的值,在“Bold”的情况下,该值可以为null,因为bold命令没有值。
另一个更大的问题是按下工具栏按钮时正在破坏选择。您需要通过使用mousedown
事件而不是click
来阻止这种情况,或者更好地阻止按钮抓住焦点。例如,请参阅this answer。
最后,我认为缺少一个名为editor
的属性,该属性应该是对包含可编辑内容的文档的引用。
我在您的演示中添加了针对这些内容的修补程序:http://jsfiddle.net/neXkk/2/。仅在Firefox中测试过,您可能需要对IE进行更多调整。