我一直不太喜欢所见即所得编辑器,但在我开发的大多数应用程序中,它们是必要的,以便我们的客户可以编辑其内容。尝试了几个不同的编辑器后,我似乎最喜欢tinyMCE。虽然功能强大且似乎生成的HTML相当好,但它也存在问题。最近,我一直在考虑创建一个完全适合我的需求的自定义所见即所得编辑器,利用contentEditable属性。这个HTML5功能已经成熟了吗?我会遇到很多跨浏览器问题吗?它有什么限制?我想我的问题最终归结为:放弃第三方所见即所得编辑器并转向contentEditable区域是否值得?
我一直不太喜欢所见即所得编辑器,但在我开发的大多数应用程序中,它们是必要的,以便我们的客户可以编辑其内容。尝试了几个不同的编辑器后,我似乎最喜欢tinyMCE。虽然功能强大且似乎生成的HTML相当好,但它也存在问题。最近,我一直在考虑创建一个完全适合我的需求的自定义所见即所得编辑器,利用contentEditable属性。这个HTML5功能已经成熟了吗?我会遇到很多跨浏览器问题吗?它有什么限制?我想我的问题最终归结为:放弃第三方所见即所得编辑器并转向contentEditable区域是否值得?
第三方所见即所得编辑器也会使用contenteditable属性。最大的问题在于它们确实会创建标签混乱,而在不同的用户代理中创建的相同文本将具有不同的HTML源。
个人建议您应该坚持使用tinyMCE或CKEdit。
我觉得这要看你的需求。如果你需要复杂、庞大的东西,而且加载JavaScript的数量不会影响你,那么使用一些所见即所得的编辑器(WYSIWYG)。它们提供了很多可能性,但也存在一些问题(比如这个安全问题:http://www.devilscafe.in/2011/10/tinymce-ajaxfilemanager-remote-file.html)。
但如果你只需要简单的东西,可以使用 HTML5 的 contenteditable 属性和 execCommand 方法,例如:http://www.quackit.com/html/codes/contenteditable.cfm。