【发布时间】:2016-04-08 22:26:26
【问题描述】:
我目前正在使用 wordpress 进行前端编辑编码。结果应该是使用 wordpress 帖子进行类似 Evernote 的编辑。
一个主要问题是整合编辑器的必要动态(DOM(已解决)和 Get(已解决)和 Set 内容的转变)。
Wordpress 数据库存储不带段落的标记,并在交付时添加它们。当您最初在 php 中设置 tinymce 内容时
wp_editor( $content, $editor_id,$settings );
内容写在文本区域中(不带段落),tinymce 在 init 上将其删除,并在 init 上进行一些 PROCESSING 并将其写入可视化编辑器中。
为了动态设置我从 wordpress 数据库中获取的内容,我使用
tinyMCE.get(editor_id).setContent(content);
但不幸的是,这似乎绕过了在 tinymce init 上完成的处理,导致换行和段落丢失。
我目前的解决方法是将 wordpress 的内容设置为 worpress 文本编辑器,然后切换回可视化编辑器,因为这似乎会触发中断和段落的处理:
jQuery( "#myeditor-html" ).trigger( "click" );
jQuery('#textarea_id').val(content);
jQuery( "#myeditor-tmce" ).trigger( "click" );
我真的不喜欢这个解决方案,因为
- 如果您喜欢视觉内容,Wordpress 不建议您切换
- 我想稍后禁用“快速标签”文本编辑器
我的编码能力不够好,看不懂tinymce的init代码,我也找不到wordpress在jQuery( "#myeditor-tmce" ).trigger( "click" )上的作用。
有人有同样的问题:
tinymce setContent removes new lines
但是这个解决方案太简单了,它会随着任何扩展标记(例如列表)而崩溃。
你能帮我找到一个优雅的代码,用 wp 数据库内容填充 tinymce,这意味着要弄清楚提到的 PROCESSING 吗?
【问题讨论】:
标签: javascript jquery wordpress tinymce tinymce-4