tinymce - TinyMCE 中独特的自定义格式
问题描述
我正在尝试在 TinyMCE 中创建适用于段落的段落样式列表。一个段落应该只应用一种样式。所以一个段落可以是正常的、领先的或小的。一次不应超过一个。
这是我尝试过的:
formats: {
"p-normal": { block: "p", classes: "govuk-body" },
"p-lead": { block: "p", classes: "govuk-body-l" },
"p-small": { block: "p", classes: "govuk-body-s" }
},
style_formats: [
{ title: "Paragraph styles", items: [
{ title: "Normal paragraph", format: "p-normal" },
{ title: "Lead paragraph", format: "p-lead" },
{ title: "Small paragraph", format: "p-small" }
] }
]
如果我让一个段落正常,然后将其更改为引导段落,它最终看起来像这样:
<p class="govuk-body p-lead">Test</p>
在格式下拉列表中,两种样式都被勾选。我可以让它只有一种格式处于活动状态并删除以前应用的格式吗?
解决方案
我找到了一种方法来做到这一点,方法是使用事件处理程序在切换格式之前采取行动,并删除光标所在位置应用的所有格式。
这是事件处理程序:
init_instance_callback: function(editor) {
editor.on('BeforeExecCommand', function (e) {
if (e.command === "mceToggleFormat") {
var formats = this.formatter.matchAll(["p-normal", "p-lead", "p-small"]);
for (var i = 0; i < formats.length; i++) {
this.formatter.remove(formats[i]);
}
}
});
}
您需要检查所有排他的格式,然后删除所有已应用的格式。如果您拥有一组以上的专有格式,则需要根据所应用的格式检查该组。
推荐阅读
- python - python .loc 混乱。帮助使用 str.endswith
- r - 热图(geom_tile)的调整?
- c# - 如何在流利的NHibernate中创建外键关系而不持有对父实体的引用
- arduino - 带有 Esp32 w5500 以太网模块的软件在 Mqtt 存在重新连接问题
- mysql - 预期输入结束,但在连接中使用 UNNEST 时获得关键字“ON”(bigQuery)
- spring-boot - Spring websocket jwt身份验证
- d3.js - 将 Flash 坐标转换为 GeoJSON
- angular - 架构验证失败并出现以下错误:数据路径“”不能有其他属性(inlineStyleLanguage)
- docker - 如何让 docker 在作为容器的 Jenkins 节点中运行?
- python - skcuda.linalg.PCA 的 fit_transform 抛出错误