Django CMS / WYMEditor 停止剥离空白符

0 投票
1 回答
511 浏览
提问于 2025-04-16 17:17

我知道WYMEditor是个什么东西,也明白用段落来调整间距并不是它的本意,不过现在的问题是客户要求我们提供这个功能。

我到处找了找,想看看WYMEditor是在哪里去掉空白的,但就是找不到。

看起来当你按下回车键时,表面上会生成一个段落(P),但在查看源代码时却没有这个段落。而且,手动在HTML源代码里加上<p>&nbsp;</p>也不行,因为WYMEditor会把它删掉。

我只是想知道有没有人遇到过这个问题,知道怎么去掉这个功能吗?值得一提的是,我觉得这个替换操作可能同时发生在Django-CMS的“文本”模块和WYMEditor的JavaScript里。

1 个回答

2

原来,负责去掉空标签的那个函数名字很简单,不知道为什么我在多次搜索脚本文件中“empty”这个词时没找到它。

这个函数在 jquery.wymeditor.js 文件的第3440行左右,名字是 WYMeditor.XhtmlSaxListener.prototype.removeEmptyTags,只需要停止替换就可以了:

WYMeditor.XhtmlSaxListener.prototype.removeEmptyTags = function(xhtml)
{
   return xhtml;// .replace(new RegExp('<('+this.block_tags.join("|").replace(/\|td/,'').replace(/\|th/, '')+')>(<br \/>|&#160;|&nbsp;|\\s)*<\/\\1>' ,'g'),'');
};

这样显然就可以停止去掉空白了!

撰写回答