javascript - 如何在 TinyMce 的预代码块中保留跨度标签和类
问题描述
我正在尝试使用 TinyMce 存储一段代码。在编辑器中,当我插入它时,它看起来很完美,带有样式化内容的标签(跨度)。这里有一个简单的例子,切到不填满页面,如果你在 DOM 上检查它在编辑时的样子:
<pre class="language-php" contenteditable="false">
<span class="token keyword">if</span>
<span class="token punctuation">(</span><span class="token variable">$media</span>
<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token punctuation">}</span>
</pre>
问题是,一旦我保存在我的 SQL 数据库中,其中的跨度<pre>
就会消失,我已经检查了发生这种情况的时刻,并且在保存到数据库中并在 php 中处理它之前。
然后是TinyMCE如何处理数据的问题,经过谷歌搜索我一直无法找到问题的解决方案。
我使用的是 TinyMCE 5.x,没有任何高级插件。
TLDR:我试图在<pre>
标签中存储一个代码片段,一旦我将它插入到 TinyMCE 中,它看起来不错(感谢 spans with classes),并且它把 spans all arroud all characters,但是一旦我保存了内容,它就会吃掉所有 spans内预。
解决方案
好吧,对于任何和我有同样问题的人来说。
我的问题是我对它如何工作的理解是错误的,使语法与样式一起工作的小家伙是prismjs,所以我的问题没有答案,但我的问题有一个解决方案。
您不关心<pre>
和<code>
标签内的跨度,因为如果您稍后在显示内容的页面中实例化 prismjs,它将自动设置为来自 IDE 的代码。
我希望它可以帮助将来像我一样对问题采取错误方法的人。
推荐阅读
- java - 如何转到 Thymleaf 中的 th:text 中的下一行?
- hadoop - 我们如何才能从 hdfs 联邦的一个命名空间中排除一些数据节点?
- java - 有没有办法使用java检查和释放数据库锁?
- c# - 统一:全方位的重力
- c++ - 如何将 stderr 与输出流相关联
- r - R Markdown:knitr选项结果='隐藏'不起作用
- c# - 如何使用向导在 Visual Studio 2017 中添加项目模板
- .net - MVC .NET CORE - DataAnnotation 的Required(ErrorMessage="Err") 不会出现在服务器端验证中
- postgresql - 如何将我的整个 postgres 数据库复制到另一个 postgres 数据库?
- android - 具有可检查状态的多组项目相互取消选中