html – 防止CKEditor在源代码模式下格式化代码
当在源文件模式下查看时,如何在CKEditor中防止任何自动格式化?
我喜欢直接编辑HTML源代码,而不是使用WYSIWYG界面,但是每当我写新的行或布局标签,我将如何缩进它们,当我切换到所见即所得模式,然后再次回到源模式时,它们都被格式化。 我偶然发现了一个CKEditor开门票Preserve formatting of ProtectedSource elements,暗示了一个可能在一段时间内存在的设置,这个设置将完全是我所追求的。我只想知道如何在源模式下编辑时完全关闭所有自动格式。 我想出了一个解决方案,我以为会是万无一失的(尽管不是一个愉快的)。 我了解了protectedSource设置,所以我想,也许我可以使用它,并在所有HTML之前创建一个HTML注释标签,然后再将一个正则表达式查找注释标签放入protectedSource数组,但即使是(相信与否)不起作用。 我已经在CKEditor之外的浏览器中直接尝试了我的表达,它正在工作,但是CKEditor并不像预期的那样保护代码(我怀疑是一个涉及注释标签的错误,因为我可以使用其他字符串)。如果你想知道,这是我曾经希望工作的一个工作,但不是: config.protectedSource.push( /<!-- src -->[sS]*<!-- 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>[sS]*</protected>/g] 希望有帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |