主题: 一个很严重的问题,ie浏览器没有问题,火狐或其它不能提交得到值
作者: 1234110, 发布日期: 2013-05-12 21:01:22, 浏览数: 3388
操作系统: windows xp

浏览器版本: 火狐,360浏览器极速模式

KindEditor版本: 4.1.7和其它全部版本

BUG再现步骤:
1.在IE模式下提交通过KindEditor的内容是没有问题的,但在其它浏览器就提交不了,提交是成功的,但内容不更新,有很多使用你们编辑器的用户都发现这个问题了,
http://www.kindsoft.net/view.php?bbsid=4&postid=7006&pagenum=1
http://www.kindsoft.net/view.php?bbsid=4&postid=6882&pagenum=1

http://www.kindsoft.net/view.php?bbsid=4&postid=6877&pagenum=1

http://www.kindsoft.net/view.php?bbsid=4&postid=6686&pagenum=1

http://www.kindsoft.net/view.php?bbsid=4&postid=6532&pagenum=2


期望结果: 在其它浏览器也能得到提交的值

作者: Roddy, 发布日期: 2013-05-12 21:50:16

KindEditor的可视化操作在新创建的iframe上执行,代码模式下的textarea框也是新创建的,所以最后提交前需要执行 sync() 将HTML数据设置到原来的textarea。

KindEditor在默认情况下自动寻找textarea所属的form元素,找到form后onsubmit事件里添加editor.sync()函数,所以用form方式提交数据,不需要手动执行editor.sync()函数。

// 将编辑器的HTML数据同步到textarea
editor.sync();
回复
作者: 23432, 发布日期: 2013-05-13 08:38:52

回复Roddy:不知到是不是因为其他人表述不清,这个问题其实应该是这样的:

默认form模式提交数据的时候,在ie下用户不需要进行任何设置和调用sync函数,因为editor已经自动调用,但是在firefox和chrome下,用户如果不手动调用sync函数,editor的数据将不会自动同步到textarea下,因此造成表象就是ie下只要点击提交按钮就可以收到数据,chrome下无法接受数据。

间接解决办法:

                    <script>
                            KindEditor.ready(function(K) {
                                K.create('#content', {
                                        uploadJson : '/editor/asp/upload_json.asp',
                                        fileManagerJson : '/editor/asp/file_manager_json.asp',
                                        allowFileManager : true,
                                        afterBlur: function(){this.sync();}
                                });
                            });
                    </script>

回复
作者: Roddy, 发布日期: 2013-05-13 09:58:15
回复23432:有可能是form不是textarea的祖先,比如form在table和tr之间。
回复
作者: xuqingkai, 发布日期: 2013-05-20 08:14:16

在标准浏览器如FF和chrome上

如果标签form和其他标签是交错包含的,就会出现这问题

尤其form在table和tr标签之间,也会出现你说的问题

回复
发表新帖 发表回复