jQuery Editor插件 - execommand未被调用

时间:2012-02-20 12:08:57

标签: jquery jquery-plugins wysiwyg contenteditable

我正在使用jHTMLArea jQuery插件(http://jhtmlarea.codeplex.com/)。它使用嵌入式iframe创建了一个简单的WYSIWYG编辑器。我想摆脱iframe并改为使用ContentEditable div。

问题是我可以让它运行execcommand函数,以便格式化更改应用于编辑器。

查看http://jsfiddle.net/mwillmott/neXkk/以了解我的实施情况。

任何帮助将不胜感激!

1 个答案:

答案 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进行更多调整。