https://blog.csdn.net/sinat_19569023/article/details/50318035
https://blog.csdn.net/AlexKate/article/details/78573572
问题描述:
直接用form表单的action提交,textarea不为空,但是改为js提交就变空了,到底是为什么了?
①那我们应该先了解一下的KindEditor 工作原理:
隐藏原来 textarea 文本框,生成 iframe,在 iframe 里面进行编辑
KindEditor的可视化操作在新创建的iframe上执行,代码模式下的textarea框也是新创建的,所以最后提交前需要执行 sync() 将HTML数据设置到原来的textarea。
KindEditor在默认情况下自动寻找textarea所属的form元素,找到form后onsubmit事件里添加sync函数,所以用form方式提交数据,不需要手动执行sync()函数。
KindEditor默认采用白名单过滤方式,可用 htmlTags 参数定义要保留的标签和属性。当然也可以用 filterMode 参数关闭过滤模式,保留所有标签。
②我的理解是:因为JS提交时是异步,而KindEditor在默认情况下自动提交,应该是需要同步的。
因此我们需要手动执行sync()函数,那么我们可以设置当编辑完后,编辑器文本框失去焦点后调用它。
那么这时我们只需多加这一行代码:
afterBlur: function(){
this.sync();},
完整代码是:
<script>
KindEditor.ready(function<