By default, when the accordion
plugin is loaded, the command is available in the TinyMCE menu at Insert → Accordion.
222
Accordion body...
Accordion body...
This is a custom tab
', } ] }, { name: 'versions', // override the default versions tab title: 'Custom Versions', items: [ { type: 'htmlpanel', html: 'This is a custom versions panel.' } ] }, 'custom2', // new tab custom2 as defined on init in setup() below 'custom3' // new tab custom3 as defined on button click in setup() below ], setup: (editor) => { // on editor init, add a tab called custom2 editor.on('init', () => { editor.plugins.help.addTab({ name: 'custom2', title: 'Custom Tab 2', items: [ { type: 'htmlpanel', html: 'This is another custom tab
', } ]} ); }); // add a toolbar button that when clicked adds a tab called custom3 editor.ui.registry.addButton('addTab', { text: 'Add tab', onAction: () => { editor.plugins.help.addTab({ name: 'custom3', title: 'Custom Tab 3', items: [ { type: 'htmlpanel', html: 'This is yet another custom tab
', } ] }); } }); } }); ``` #### 16. Image(图片) ##### 基础设置 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'image', toolbar: 'image', image_list: [ { title: 'My image 1', value: 'https://www.example.com/my1.gif' }, { title: 'My image 2', value: 'http://www.moxiecode.com/my2.gif' } ] }); ``` > 这不是拖放功能,用户需要输入图像的路径。用户还可以选择输入图像描述、尺寸以及是否应限制图像比例(通过复选框选择)。其中一些设置可以使用插件的配置选项进行预设。 > > TinyMCE不支持SVG(可缩放矢量图形),以保护我们的用户及其最终用户。SVG可用于执行客户端和服务器端攻击。 ##### 选项(Options) * `a11y_advanced_options` a11y是可访问性的缩写,一般面向残障人士。 开启后,会在对话框中添加role="presentation",该声明用于告诉浏览器这个图片仅作为装饰,无实际意义。 * ### `file_picker_callback` 用来添加自定义文件选择器。 > 缺点:不可以拖拽图片上传。拖拽图片上传请使用`images_upload_handler` ```js file_picker_types: 'image', /* and here's our custom image picker*/ file_picker_callback: (cb: any, value, meta) => { const input = document.createElement('input'); input.setAttribute('type', 'file'); input.setAttribute('accept', 'image/*'); input.addEventListener('change', (e: any) => { const file = e.target.files[0]; const reader: any = new FileReader(); reader.addEventListener('load', () => { /* Note: Now we need to register the blob in TinyMCEs image blob registry. In the next release this part hopefully won't be necessary, as we are looking to handle it internally. */ const id = 'blobid' + (new Date()).getTime(); console.log(tinymceRef.value, '==tinymceRef.value'); const blobCache = tinymceRef.value.editorUpload.blobCache; const base64 = reader.result.split(',')[1]; const blobInfo = blobCache.create(id, file, base64); blobCache.add(blobInfo); console.log(blobInfo, '==blobInfo.blobUri()'); // 调接口 // let file = blobInfo.blob() // console.log(file, '==file') /* call the callback and populate the Title field with the file name */ cb(blobInfo.blobUri(), { title: file.name }); }); reader.readAsDataURL(file); }); input.click(); }, ``` * ### `file_picker_types` 此选项使您能够通过空格或逗号分隔的类型名称列表指定所需的文件选择类型。目前有三种有效的类型:`file`、`image`和`media`。 可能的值:`'file'`, `'image'`, `'media'` ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML file_picker_types: 'image' }); ``` * ### `image_caption` 此选项允许用户为图像启用字幕。启用此选项后,图像对话框将有一个名为“标题”的额外复选框。当用户选中复选框时,图像将被包装在HTML5 `figure`元素中,其中包含`figcaption`。然后用户可以在编辑器中输入标题内容。 类型:boolean 默认值:false 下面是当用户选择标题复选框时创建的HTML示例。 ```html一个demo
` 而开启此选项后,插件会将当前分页符所在的块元素拆分成两个。 上例则变为: ```html一个
demo
``` 默认值:false > !!开启后,插入分页符,必须回车。否则直接在分页符后加的内容不能正常显示。 #### 21. Preview(预览) ##### 基础设置 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'preview', toolbar: 'preview' }); ``` #### 22. Quick Toolbar(快速工具栏) 快速搜索插件添加了三个上下文搜索: * 快速选择工具栏-选择文本时显示,提供格式按钮,如:`bold`、`italic`和`link`。 * 快速插入工具栏-在添加新行时显示,提供用于插入对象(如表格和图像)的按钮。 * 快速图像工具栏-在选择图像或图形时显示,提供图像格式按钮,如对齐选项。 这个插件还增加了三个新的工具栏按钮: * 快速链接-用于创建和编辑链接的内联表单,无需对话框。 * 快速图像-允许用户选择要上载的本地图像。 * 快速表格-在不提示用户选择行数和列数的情况下创建2x2表格。 ##### 基础设置 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'quickbars' }); ``` ##### 特定于插件的工具栏按钮 > 都可以搭配quickbars_insert_toolbar进行使用。 * ### Quick Link 快速链接(`quicklink`)工具栏按钮允许用户快速插入/编辑内联链接。默认情况下,它包含在“快速选择”上下文工具栏中,并且可以在其他上下文工具栏中使用。 > 搭配link_context_toolbar使用效果更佳。 * ### Quick Image “快速图像”(`quickimage`)工具栏按钮允许用户快速将计算机中的图像插入编辑器。默认情况下,它包含在“快速插入”上下文工具栏中,并且可以在其他工具栏中使用。 * ### Quick Table “快速表格”(`quicktable`)工具栏按钮可插入宽度为100%的2x2表格。默认情况下,它包含在“快速插入”上下文工具栏中,并且可以在其他工具栏中使用。 ##### 选项(Options) * ### `quickbars_selection_toolbar` 要禁用快速选择工具栏,请将`quickbars_selection_toolbar`设置为`false`。 默认值:`'bold italic | quicklink h2 h3 blockquote'` * ### `quickbars_insert_toolbar` 要禁用“快速插入”工具栏,请将`quickbars_insert_toolbar`设置为`false`。 默认值:`'quickimage quicktable'` ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'quickbars pagebreak', quickbars_insert_toolbar: 'quickimage quicktable quicklink | hr pagebreak' }); ``` * ### `quickbars_image_toolbar` 要禁用快速图像工具栏,请将`quickbars_image_toolbar`设置为`false`。 默认值:`'alignleft aligncenter alignright'` 更多功能见付费插件:imagetools #### 23. Save(保存) 这个插件为TinyMCE工具栏添加了一个保存按钮,它将提交编辑器所在的表单。 ##### 基础设置 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'save', toolbar: 'save cancel' // cancel为取消保存 }); ``` > 提醒:如果遇到提示“错误: 表单提交字段冲突.”,则可能在你的表单里有name="submit"的元素存在。解决办法就是将其name值修改一下。 > > ```js > > ``` ##### 选项(Options) * ### `save_enablewhendirty` 此选项允许您禁用保存按钮,直到对编辑器的内容进行了修改。默认情况下,此选项处于启用状态。 默认值:true * ### `save_oncancelcallback` 此选项允许您指定调用取消按钮/命令时将执行的函数。 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'save', toolbar: 'save', save_oncancelcallback: () => { console.log('Save canceled'); } }); ``` * ### `save_onsavecallback` 此选项允许您指定调用保存按钮/命令时将执行的功能。 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'save', toolbar: 'save', save_onsavecallback: () => { console.log('Saved'); } }); ``` #### 24. Search and Replace(搜索和替换) 这个插件为TinyMCE添加了搜索/替换对话框。它还在`查找并替换`菜单栏下添加了一个工具栏按钮和菜单项`Edit`。 ##### 基础设置 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'searchreplace', toolbar: 'searchreplace' }); ``` #### 25. Table(表格) Table插件为TinyMCE添加了表格管理功能,包括对话框、上下文菜单、上下文菜单、菜单项和工具栏按钮。 ##### 基础设置 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'table', toolbar: 'table tabledelete | tableprops tablerowprops tablecellprops | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol' }); ``` > 实际只需要在toolbar中引入table就会包含所有功能。 ##### 选项(Options) * ### `table_toolbar` 指定table专属的快速工具栏中按钮的显示及顺序。该参数是一个以空格分隔的工具栏控件列表。使用“|”作为分隔符。如果要禁用此工具栏,只需将值设置为空字符串即可。 默认值:`'tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol'` * ### `table_appearance_options` 此选项允许您禁用用户在插入或编辑表时可用的某些选项。当设置为`false`时,以下字段将不会出现:单元格间距,单元格填充,边框和标题。 默认值:true * ### `table_grid` 此选项允许您禁用表格菜单中的网格状表格选取器。网格功能(默认情况下启用)由一个可拖动的矩阵组成,用户可以与之交互,以根据其输入自动创建x行x列的表格。 但是,如果`table_grid`设置为`false`,则表格选择器将被一个菜单项替换,该菜单项将打开一个对话框,用户可以使用该对话框插入表格。此对话框允许用户设置各种参数,如列数和行数、宽度、高度、单元格间距和填充、边框宽度、对齐方式以及是否显示标题。如果`table_advtab`设置为`true`,则还可以使用高级样式选项。 默认值:true * ### `table_class_list` 此选项使您能够指定要在“表选项”对话框中显示的类列表。如果希望用户为表元素指定预定义的类,这将非常有用。 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'table', toolbar: 'table', table_class_list: [ { title: 'None', value: '' }, { title: 'No Borders', value: 'table_no_borders' }, { title: 'Borders', menu: [ { title: 'Red borders', value: 'table_red_borders' }, { title: 'Blue borders', value: 'table_blue_borders' }, { title: 'Green borders', value: 'table_green_borders' } ] } ] }); ``` * ### `table_cell_class_list` 此选项使您能够指定要在“表格单元格选项”对话框中显示的类列表。如果您希望用户将预定义的类分配给表格单元格,这将非常有用。用法同上。 * ### `table_row_class_list` 此选项使您能够指定要在表行选项对话框中显示的类列表。用法同上。 * ### `table_border_widths` 此选项用于指定预定义单元格边框宽度的列表,以便在`tablecellborderwidth`工具栏按钮或菜单项上快速访问。此选项接受任何有效[的CSS数值](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Values_and_Units#numeric_data_types)。 > 注意,使用前要在引入tablecellborderwidth工具。或者在table_toolbar中加入。 默认值: ```js [ { title: '1px', value: '1px' }, { title: '2px', value: '2px' }, { title: '3px', value: '3px' }, { title: '4px', value: '4px' }, { title: '5px', value: '5px' } ] ``` ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'table', toolbar: 'table tablecellborderwidth', table_border_widths: [ { title: 'small', value: '1px' }, { title: 'medium', value: '3px' }, { title: 'large', value: '5px' }, ] }); ``` * ### `table_border_styles` 此选项用于指定预定义单元格边框宽度的列表,以便在`tablecellborderstyle`工具栏按钮或菜单项上快速访问,以及对话框选项。此选项接受任何有效的[CSS边框样式](https://developer.mozilla.org/en-US/docs/Web/CSS/border-style#values)。用法同上。 默认值: ```js [ { title: 'Solid', value: 'solid' }, { title: 'Dotted', value: 'dotted' }, { title: 'Dashed', value: 'dashed' }, { title: 'Double', value: 'double' }, { title: 'Groove', value: 'groove' }, { title: 'Ridge', value: 'ridge' }, { title: 'Inset', value: 'inset' }, { title: 'Outset', value: 'outset' }, { title: 'None', value: 'none' }, { title: 'Hidden', value: 'hidden' } ] ``` * ### `table_background_color_map` 此选项用于指定表格单元格背景颜色选择器的默认值,可以使用`tablecellbackgroundcolor`工具栏按钮或菜单项打开。如果没有定义值,工具栏按钮和菜单项将使用[`color_map`选项](https://www.tiny.cloud/docs/tinymce/latest/user-formatting-options/#color_map)的值或默认值。此选项不会修改表格对话框中的背景颜色选择器。此选项接受Hex、RGB和HSL颜色值。 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'table', toolbar: 'table', table_background_color_map: [ { title: 'Red', value: 'FF0000' }, { title: 'White', value: 'FFFFFF' }, { title: 'Yellow', value: 'F1C40F' } ] }); ``` * ### `table_border_color_map` 此选项用于指定表格单元格边框颜色选择器的默认值,可以使用`tablecellbordercolor`工具栏按钮或菜单项打开。 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'table', toolbar: 'table', table_border_color_map: [ { title: 'Red', value: 'FF0000' }, { title: 'White', value: 'FFFFFF' }, { title: 'Yellow', value: 'F1C40F' } ] }); ``` * ### `table_advtab` 此选项可以禁用表格对话框中的高级选项卡。高级选项卡允许用户输入`style`、`border color`和`background color`值。 默认值:true * ### `table_cell_advtab` 此选项可以禁用表格单元格对话框中的高级选项卡。高级选项卡允许用户输入`style`、`border color`和`background color`值。 默认值:true * ### `table_row_advtab` 此选项可以禁用表行对话框中的高级选项卡。高级选项卡允许用户输入`style`、`border color`和`background color`值。 默认值:true * ### `table_style_by_css` 开启后强制表格属性对话框中生成的属性使用css来实现而不是插入属性值。 举个例子,边框线是插入属性border=3来实现,但开启该选项后,将使用style="border-width: 3px;"来实现。 默认值:true * ### `table_merge_content_on_paste` 此选项设置将一个表粘贴到另一个表时编辑器的行为。 * 当设置为`true`时,将一个表粘贴到另一个表中将用粘贴的表替换现有表。它将粘贴的表合并到现有表中,并在此过程中替换现有表。 * 当设置为`false`时,将表格粘贴到另一个表格中会在现有表格的选定单元格中创建一个新表格。 #### 26. Template(模板) > 模板插件已标记为已弃用。它将从即将发布的TinyMCE 7.0版本中完全删除。不考虑使用。 #### 27. Media(媒体播放器) `media`插件为用户提供了将HTML5视频和音频元素添加到可编辑区域的功能。 它还在`Insert/edit video`菜单下添加了`Insert`菜单项,并添加了`Insert/edit video`工具栏按钮。 ###### 基础设置 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'media', toolbar: 'media' }); ``` #### 28. Visual Blocks(视觉块) 显示块元素范围。 ##### 基础设置 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'visualblocks', toolbar: 'visualblocks' }); ``` ##### 选项(Options) * ### `visualblocks_default_state` 此选项使您能够指定Visual Blocks插件的默认状态。 默认值:false #### 29. Visual Characters(视觉字符) 显示不可见字符。 ##### 基础设置 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'visualchars', toolbar: 'visualchars' }); ``` ##### 选项(Options) * ### `visualchars_default_state` 此选项允许指定可视字符插件的默认状态。 默认值:false #### 30. Word Count(字数统计) 在统计栏 **字词数** 这一栏中,每一个中文被认为是一个字,统计+1;每一个单词被认为是一个词,不管其由几个字母组成,统计+1;数字及符号:不统计(有个别例外,如货币符号)。 ##### 基础设置 ```js tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'wordcount', toolbar: 'wordcount' }); ``` ### 收费插件(可自己开发引入) #### 1.公式--kityformula-editor #### 2.格式刷--formatpainter