TinyMCE 4:自动将一种块格式应用于新块
TinyMCE 4: Apply one block format to new blocks automatically
在TinyMCE 4中,我使用标准的formatselect
控件来格式化内容中的块元素。它的配置通常如下所示:
block_formats: 'Paragraph=p;Header 1=h1;Header 2=h2'
我有这些块的自定义样式,无论编辑器生成的 HTML 最终在哪里,我都需要保留这些样式。主题中的content.min.css
可以控制块在编辑器中的外观,但不能控制其他地方的外观,所以我不能依赖它。所以我使用自定义格式而不是标准块格式。我的配置如下所示:
block_formats: 'Normal=normal;Header 1=header1;Header 2=header2',
formats: {
normal: {block: 'p', styles: {
'font-family': '"Helvetica Neue",Helvetica,Arial,sans-serif',
'font-weight': 'normal',
'font-size': '13px',
'line-height': '20px',
'color': '#333'}},
header1: {block: 'h1', styles: {
'font-family': '"Helvetica Neue",Helvetica,Arial,sans-serif',
'font-weight': 'normal',
'font-size': '30px',
'line-height': '40px',
'color': '#333'}},
header2: {block: 'h2', styles: {
'font-family': '"Helvetica Neue",Helvetica,Arial,sans-serif',
'font-weight': 'normal',
'font-size': '20px',
'line-height': '30px',
'color': '#333'}}
},
这实现了我通过将样式嵌入生成的 HTML 元素中来实现我的预期。但是使用我不理解的自定义格式时,行为发生了一些变化。
使用默认块格式时,当内容为空时以及创建新块时,默认情况下会选择"段落"。对于自定义格式,它不会选择默认块格式,因此默认设置是没有我的自定义样式。我希望normal
是默认值。我怎样才能做到这一点?
很晚了,但我想我能够以适合您的方式做到这一点。希望有人觉得这有用。
(使用微小MCE:4.3.13)
在我的情况下,我在模态中显示了一个微小的MCE实例。模态可用于创建或编辑文本,然后将其作为 html 保存到数据库中。我遇到的问题是在创建新的文本实例时,默认情况下会放入一个 p 标签(假设您添加一些内容),该标签不反映他们正在查看的当前样式。稍后,我需要将此 html 渲染为图像,因此当我渲染它时,样式必须存在于标签上,并且"格式"对象不会影响它,因为用户尚未通过 UI 选择它。然后,用户可以创建在图像中以不同方式显示的结果 html,因为呈现的 Web-Kit 没有正确的 css,因此只是渲染其默认值。
因此,要强制它显示初始样式(字体大小和字体系列是我关心的问题),您可以简单地设置编辑器的初始内容。如果没有可供编辑的 html,我会在向用户显示模态之前执行此操作。
tinymce.activeEditor.setContent('<p><span style="font-family: arial; font-size: 8pt;"> </span></p>');
当然,可以先检查浏览器版本,以确保您设置了可接受的值。
希望这有帮助。
[更新]*这是一个失败!编辑器将呈现默认字符,并将光标放在焦点之后。这会导致设计上的错误编辑。(想象一下,我在文本上强加了默认的"下划线"样式)
因为我创建了一个空格,所以带下划线的空间现在会出现在编辑器中。如果用户点击退格键来删除该空间,则可以。 但是,如果用户再次点击退格键,则会删除格式。这不是修复程序。
要修复它,您需要将 tiny 设置为不验证 html。不幸的是,它不会呈现出色的 html。您无法切换验证。我认为这种情况应该改变。我们需要能够仅将内容注入为样式。我会做一张票。
https://github.com/tinymce/tinymce/issues/3126
- 有没有一种方法可以从两个标签之间提取文本,并以我选择的格式输出
- 解析一个复杂的JavaScript表达式,将其改写为另一种格式
- 通过javascript将带有日期的字符串格式化为另一种格式
- 将JSON从一种格式转换为另一种格式
- 将 JSON 日期解析为另一种格式
- 将 json 文件转换为另一种格式
- TinyMCE 4:自动将一种块格式应用于新块
- 是Javascript的一种特殊字符串格式
- 我在变量中有一个日期格式.如何将该变量日期转换为另一种格式
- 用JavaScript将日期从一种格式转换为另一种格式
- 如何将字段数据从一种格式更改为另一种格式
- 将REST JSON输出格式化为另一种格式
- 将欧洲价格转换为另一种格式
- 如何将json从一种格式转换为另一种格式
- 如何使用Imagick将图像转换为另一种格式并在画布中显示
- 将date .parse(dateString)中的日期格式化为另一种格式
- 如何将javascript日期字符串转换为另一种格式
- 将日期从一种格式转换为另一种格式-AngularJS
- Javascript将数据从一种格式转换为另一种格式,这样代码就可以读取它
- 如何将该模块中的AngularJS控制器转换为另一种格式