如何在Dedecms v5.7的CKEditor编辑器中解决回车键将和标签转换为标签的问题?

avatar
作者
猴君
阅读量:0
要解决Dedecms v5.7 CKEditor编辑器回车将br和div改了p的问题,可以尝试以下方法:,,1. 修改CKEditor配置文件:在/dede/ckeditor/config.js文件中,找到config.enterMode设置项,将其值改为'BR'。,,2. 修改Dedecms源码:打开/include/arc.listview.class.php文件,找到SetIntro函数,将其中的$intro = MakeIntro($row['fulltext'], $cfg_introlen);替换为$intro = nl2br(MakeIntro($row['fulltext'], $cfg_introlen));。,,3. 更新缓存:登录Dedecms后台,点击“系统管理”>“SQL命令行工具”,执行以下SQL语句:,,``sql,DELETE FROM dede_cache WHERE mark='config';,DELETE FROM dede_cache WHERE mark='system';,``,,完成以上操作后,重新生成文章列表,应该可以解决问题。

Dedecms v5.7 CKEditor编辑器回车将br和div改了p的解决方法

如何在Dedecms v5.7的CKEditor编辑器中解决回车键将和标签转换为标签的问题?

问题背景

在使用Dedecms v5.7版本时,许多用户发现CKEditor编辑器在回车时默认会插入<br>标签,而Shift+Enter则会插入<p>标签,有些用户习惯了直接使用回车键换段落,这导致编辑出来的文章段落与段落之间的间距过大,影响美观,从记事本复制的内容在粘贴到编辑器后,段落会自动加上<div> 标签,进一步增加了排版的复杂性。

解决方案

1. 修改CKEditor配置文件

要改变CKEditor的默认行为,需要修改其配置文件config.js,具体步骤如下:

找到配置文件:进入安装目录\include\ckeditor\,找到并打开config.js 文件。

修改配置参数:在文件中查找以下代码段:

```javascript

config.autoParagraph = false;

config.enterMode = CKEDITOR.ENTER_BR;

config.shiftEnterMode = CKEDITOR.ENTER_P;

```

替换代码:将上述代码替换为:

```javascript

config.enterMode = CKEDITOR.ENTER_P;

config.shiftEnterMode = CKEDITOR.ENTER_BP;

```

保存文件:保存对config.js 文件的修改。

通过上述修改,可以实现回车键换段落的功能,而Shift+Enter则用于插入换行符(<br>),这样就能解决段落间距过大的问题。

2. 处理DIV转P标签

对于从记事本复制的内容,在发布文章时自动添加<div> 标签的情况,可以通过修改PHP代码来解决,具体步骤如下:

找到目标文件:进入/dede/inc/ 目录,找到并打开inc_archives_functions.php 文件。

添加替换代码:在函数AnalyseHtmlBody 中添加以下代码:

```php

$body = str_replace("div","p",$body);

```

保存文件:保存对inc_archives_functions.php 文件的修改。

通过上述修改,可以确保从记事本复制的内容在粘贴到编辑器后,所有的<div> 标签都会被替换成<p> 标签,从而保持段落的一致性。

注意事项

更新缓存:在完成上述修改后,需要在后台生成更新缓存,并删除本地缓存,以确保修改生效。

测试验证:建议在完成修改后,发布一篇文章进行测试,确保问题得到解决且没有引入新的问题。

常见问题解答

1. 为什么修改config.js文件后没有生效?

可能原因包括:

缓存问题:可能是浏览器或服务器缓存未更新,尝试清除浏览器缓存,并在后台生成更新缓存。

文件路径错误:确保修改的文件路径正确,且文件名无误。

权限问题:确认你对config.js 文件有写入权限。

2. 如何避免编辑器自动添加额外的段落标签?

除了上述提到的方法外,还可以尝试以下措施:

手动设置样式:在CSS中设置段落的marginpadding 属性,以减少段落间距。

使用插件:考虑使用一些第三方插件来增强编辑器的功能和灵活性。

通过对Dedecms v5.7的CKEditor编辑器进行合理的配置和调整,可以有效解决回车键导致的标签问题,提升内容编辑的效率和质量,希望以上解决方案对你有所帮助。


【Dedecms v5.7 CKEditor编辑器回车问题解决方法】

问题描述

在Dedecms v5.7中使用CKEditor编辑器时,用户在编辑内容时按回车键,生成的HTML代码会将原本的<br>标签或<div>标签转换为<p>标签,这可能会导致页面布局出现问题。

解决方法

1、修改CKEditor配置文件

打开Dedecms安装目录下的include/ckeditor/ckeditor.js文件。

在文件中查找onKeystroke函数,该函数通常在on事件处理部分。

2、修改回车键的处理逻辑

onKeystroke函数中,找到处理回车键(Enter键)的逻辑。

修改或添加以下代码,以阻止将<br><div>转换为<p>

 if (key == CKEDITORphatEnter) {     // 检查当前选中的元素是否是<br>或<div>     var sel = this.getSelection();     var range = sel.getRange();     var startNode = range.startContainer;     var endNode = range.endContainer;     // 如果开始或结束节点是<br>或<div>,则不执行默认处理     if ((startNode && startNode.tagName == 'BR') || (endNode && endNode.tagName == 'DIV')) {         return false; // 阻止默认回车行为     } }

3、保存并重新加载编辑器

保存修改后的ckeditor.js文件。

清除浏览器缓存,并重新加载编辑器。

注意事项

在修改代码前,请确保备份原始的ckeditor.js文件,以便在出现问题时可以恢复。

修改代码后,如果发现编辑器功能异常,请及时检查修改的代码。

通过以上步骤,您应该可以解决Dedecms v5.7中CKEditor编辑器回车导致的<br><div>转换为<p>的问题。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!