html – 防止CKEditor在源代码模式下格式化代码

前端之家收集整理的这篇文章主要介绍了html – 防止CKEditor在源代码模式下格式化代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当在源文件模式下查看时,如何在CKEditor中防止任何自动格式化?

我喜欢直接编辑HTML源代码,而不是使用WYSIWYG界面,但是每当我写新的行或布局标签,我将如何缩进它们,当我切换到所见即所得模式,然后再次回到源模式时,它们都被格式化。

我偶然发现了一个CKEditor开门票Preserve formatting of ProtectedSource elements,暗示了一个可能在一段时间内存在的设置,这个设置将完全是我所追求的。我只想知道如何在源模式下编辑时完全关闭所有自动格式。

我想出了一个解决方案,我以为会是万无一失的(尽管不是一个愉快的)。

我了解了protectedSource设置,所以我想,也许我可以使用它,并在所有HTML之前创建一个HTML注释标签,然后再将一个正则表达式查找注释标签放入protectedSource数组,但即使是(相信与否)不起作用。

我已经在CKEditor之外的浏览器中直接尝试了我的表达,它正在工作,但是CKEditor并不像预期的那样保护代码(我怀疑是一个涉及注释标签错误,因为我可以使用其他字符串)。如果你想知道,这是我曾经希望工作的一个工作,但不是:

config.protectedSource.push( /<!-- src -->[\s\S]*<!-- end src-->/gi );

并且我计划做什么(对于似乎缺少在源模式中禁用格式设置的设置)是将所有我的HTML嵌套在注释的标签中,如下所示:

<!-- src -->
<div>some code that shouldn't be messed with (but is)</div>
<!-- end src -->

我很乐意听到有人对这种情况有任何建议,或者知道我已经描述的设置,或者即使有人可以填写我,为什么我不能让protectedSource正常使用两个注释标签

我真的认为这是一个bug,因为我可以得到这么多其他的表达式工作正常,甚至可以在一个注释标签区域内保护HTML,但是我根本无法在两个不同的注释标签获取HTML来保持不变。

解决方法

我的解决方案是在我的系统中使用注释,但在将页面内容提供给CKEditor之前,请将其转换为自定义HTML标签。然后,保存后,将它们转换回我的评论标签

对于您的语法,PHP将是这样的。将页面内容打印到textarea之前:

$content = str_replace(array('<!-- src -->','<!-- end src -->'),array('<protected>','</protected>'),$content);

保存结果内容之前:

$content = str_replace(array('<protected>',array('<!-- src -->',$content);

在CKEditor配置中:

protectedSource:[/<protected>[\s\S]*<\/protected>/g]

希望有帮助!

原文链接:https://www.f2er.com/html/233485.html

猜你在找的HTML相关文章