tinymce <span> 在包含 <br /> 时被删除
tinymce <span> gets removed when containing <br />
我正在使用 Tiny 4.9.10 基于模板动态生成报告。用户可以创建包含占位符的模板。然后在生成实际报告时,这些占位符会被换成它们的实际值。占位符从其封闭的 <span>
-tag.
中获取其样式(包括字体,这是这里的主要问题)
当用实际值替换占位符时,我们使用 <br />
标签插入新行,因为一些占位符本身几乎是完整的报告,需要进行结构化。
占位符全部替换后,我们将动态生成的内容重新注入到 Tiny 编辑器中,以允许用户对内容进行临时更改。
然而,此时我们注意到包含 <br />
标签的一段生成内容周围的 <span>
标签被删除了。这是一个问题,因为包含在该标签中的样式信息也被删除,导致在生成 PDF 时进一步出现问题。
我尝试解决此问题的方法:
- 将
verify_html
设置为 false
- 将
+span[br]/+span[br /]
添加到 valid_children
- 将
forced_root_bloc
设置为 div
前两个选项对我没有任何帮助,虽然最后一个看起来很有希望,但它没有帮助,因为即使在使用 <div>
时,字体信息也会包含在子 [=12= 中].
我知道这是预期的行为,因为 <span>
是一个内联标签,所以它不应该有 <br />
标签作为子标签,但我目前不知道如何解决允许我在动态生成的内容中包含 <br />
标签,而不会丢失父标签的样式(最重要的是字体)。
因此,当我们使用一些正则表达式查找包含 <p>...<\p>
或 <b />
。这会阻止 Tiny 在包含这些封闭标签
中的任何一个时丢弃 <span>
标签
TinyMCE 认为 <span> <br /> </span>
构造一个空的 space 并将其删除以利于优化。
我可能会迟到,但您也可以尝试在 setup
选项中使用此回调来阻止编辑器删除空跨度:
setup: function(editor) {
editor.on('PreInit', function() {
editor.schema.getElementRule('span').removeEmpty = false;
});
}
我正在使用 Tiny 4.9.10 基于模板动态生成报告。用户可以创建包含占位符的模板。然后在生成实际报告时,这些占位符会被换成它们的实际值。占位符从其封闭的 <span>
-tag.
当用实际值替换占位符时,我们使用 <br />
标签插入新行,因为一些占位符本身几乎是完整的报告,需要进行结构化。
占位符全部替换后,我们将动态生成的内容重新注入到 Tiny 编辑器中,以允许用户对内容进行临时更改。
然而,此时我们注意到包含 <br />
标签的一段生成内容周围的 <span>
标签被删除了。这是一个问题,因为包含在该标签中的样式信息也被删除,导致在生成 PDF 时进一步出现问题。
我尝试解决此问题的方法:
- 将
verify_html
设置为 false - 将
+span[br]/+span[br /]
添加到valid_children
- 将
forced_root_bloc
设置为div
前两个选项对我没有任何帮助,虽然最后一个看起来很有希望,但它没有帮助,因为即使在使用 <div>
时,字体信息也会包含在子 [=12= 中].
我知道这是预期的行为,因为 <span>
是一个内联标签,所以它不应该有 <br />
标签作为子标签,但我目前不知道如何解决允许我在动态生成的内容中包含 <br />
标签,而不会丢失父标签的样式(最重要的是字体)。
因此,当我们使用一些正则表达式查找包含 <p>...<\p>
或 <b />
。这会阻止 Tiny 在包含这些封闭标签
<span>
标签
TinyMCE 认为 <span> <br /> </span>
构造一个空的 space 并将其删除以利于优化。
我可能会迟到,但您也可以尝试在 setup
选项中使用此回调来阻止编辑器删除空跨度:
setup: function(editor) {
editor.on('PreInit', function() {
editor.schema.getElementRule('span').removeEmpty = false;
});
}