我正在尝试在 Tridion 中创建一个 GUI 扩展,当单击一个按钮时,我将一个特定的 html 插入到 RTF 中......我有工具栏按钮和弹出窗口来通知用户。但是,当我在插入 HTML“
我发现 applyHTML 方法正在修改正在插入的内容。是否有任何其他函数/方法可以准确插入我指示的内容,我的意思是缺少结束标记或打开标记的无效 html?
最佳答案
如果您需要制作无效标记,请考虑使用纯文本字段。不确定这会在多大程度上改变您现有的扩展和内容模型,但您可以在纯文本字段中输入任何内容,包括似乎是某种“拆分”或分隔占位符的内容。
</div><div class='Page'>
要保留富文本功能并遵循一些典型的 Tridion 实践,请考虑以下其中一项。
一次完成所有标记更改
假设您的最终标记有一个开放的 <div>
和关闭</div>
,考虑让您的扩展包装一整套选定的富文本。在此过程中和更新组件之前,允许作者选择“拆分”的位置并将整个更新保存到 RTF。
使用嵌入式模式和模板代码创建“拆分”
嵌入式架构字段是拆分内容的一种更简单的方法。作者创建了一组新的嵌入式字段,模板代码可以将其更改为选项卡、段落或您的情况下可能是页面(分页?)的内容。
A "Paragraph" embedded schema can handle this use case ,据我了解。
<!-- TemplateBeginRepeat name="Component.Fields.Paragraph" -->
<div class='Page'>
<!-- author-entered content -->
</div>
<!-- TemplateEndRepeat -->
这将创建 </div><div class='Page'>
在嵌入字段集之间。它还允许您在将来更改类和标记而无需更改扩展名。
改为插入非 HTML“合并字段”
查看我写的关于 custom tags in rich text fields 的帖子中的选项,其中包括:
- 内容管理器资源管理器中的 CSS 类,例如
class="page-split"
.您甚至可以将其设置为某种样式(例如,在视觉上显示为<hr/>
),然后将其模板化为您在最终标记中需要的任何内容。 - 合并字段占位符标签,例如“
[[end-page]][[start-page]
” - 自定义 HTML5 节点,如果必须的话
您可以插入任何带有扩展名的内容,可选择将它们设置为在 CME 中以特定方式显示。
我喜欢为作者提供在富文本字段中插入功能的更简单方法,但将特定 HTML(尤其是无效 HTML)插入组件的问题在于将此功能硬编码到内容中。您会遇到迁移和设计更改方面的问题。
考虑利用 Tridion 如何将设计与内容分开。
关于html - Tridion - 在 RTF 中插入 HTML(文字和部分元素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14119168/