在我当前的应用程序中,我创建了一个自定义 BBCode 编辑器——我使用了许多 BBCode 扩展,并且有其他集成要求,这使得我必须使用自己的编辑器而不是现成的编辑器。
创建这个,确保生成的 BBCode 始终有效,被翻译成好的 HTML 等是大量的工作,但我对结果非常满意。但是...就目前情况而言,我要求最终用户查看和编辑 BBCode。拥有所见即所得会更好。我注意到SCEditor有一个所见即所得的界面。使用 Chrome 出色的调试器进行深入研究时,我注意到以下几点
- 原始文本区域被隐藏
- 插入了一个包含 iframe 的 div
- iframe 中的文档包含一个 contenteditable div 和一个隐藏的 textarea 控件
我可以继续我的探索并弄清楚这一切是如何完成的。但是,我希望这里的某个人能够给我一些关于这里需要什么的指示。我想输入的 BBCode 以某种方式“转移”到隐藏的文本区域中,被动态解析为 HTML,结果显示在内容可编辑的 div 或类似的东西中?还有正确处理鼠标点击和选择的问题。