最近使用DedeCms5.3和DedeCms5.5遇到了一个不可思议的问题:在添加栏目时IE内核的浏览器无法保存栏目内容。到网上搜索了半天没找到解决方法,查看DedeCms官方搜索到的结果是“栏目内容”无法保存和修改的问题解决方法,打开dede/templets目录的下面两个文件
catalog_add.htm 大概519行
catalog_edit.htm 大概426行
将上面两个文件中指定位置的
GetEditor("content",$myrow[‘content‘],"450","Default","print","false");
替换成
GetEditor("content",$myrow[‘content‘],"450","Basic","print","false");即可!”。
试了一下,问题还是没解决。
打开DedeCms后台目录下的文件catalog_edit.php和article_edit.php对比一下,使用相同的函数调出了编辑器,说明DedeCms的程序应该没问题,而且在Firefox浏览器中还可以正确的保存内容,进一步证明了DedeCms的程序是没问题的。在IE下不行而在Firefox下却可以,应该是编辑器与DOM之间产生了问题,对比刚才的两个页面唯一的区别在于“栏目管理”的地方默认编辑器区域默认是被隐藏了,使用IE查看右下角的错误提示:“由于出现错误 800a025e 而导致此项操作无法完成”,在网上搜索一下才发现原来是FCKeditor的一个BUG。当FCKeditor的父目录默认被隐藏,就会出现此类错误。找到错误原因就好解决问题了,在添加和编辑栏目时,给编辑器添加默认值就可以解决这个问题了。
打开:后台目录/templets/catalog_edit.htm和catalog_add.htm两个文件
catalog_add.htm 大概518行
GetEditor("content", "", "450", "Default", "print", "false");
替换为
GetEditor("content", " ", "450", "Default", "print", "false");
给编辑器默认赋一个空格
catalog_edit.htm 大概426行:
GetEditor("content", $myrow[‘content‘], "450", "Default", "print", "false");
替换为
$cont= empty($myrow[‘content‘]) ? ‘ ‘: $myrow[‘content‘]; GetEditor("content", $cont, "450", "Default", "print", "false");
$cont是自己定义的,这样就解决了栏目内容无法保存的问题。
时间: 2024-11-08 00:24:17