- 快速入门
- Explore advanced topics
- Accessibility
- Editor control identifiers
- Annotations
- Editor events
- tinymce-AddOnManager
- Boilerplate content CSS
- Handle asynchronous image uploads
- tinymce-Annotator
- tinymce-FocusEvent
- Configuring callbacks for Comments 2-0
- Keyboard shortcuts
- tinymce-CommandEvent
- tinymce-FocusManager
- tinymce-WindowManager
- Toolbar buttons
- PHP image upload handler
- tinymce-ContentEvent
- tinymce-Formatter
- tinymce-dom-DomQuery
- Create a plugin for TinyMCE
- Security
- tinymce-Editor
- tinymce-NotificationManager
- tinymce-dom-DOMUtils
- Create a skin for TinyMCE
- Usage with module loaders
- tinymce-EditorCommands
- tinymce-Plugin
- tinymce-dom-ScriptLoader
- Create custom notifications
- TinyMCE plugin Yeoman generator
- tinymce-EditorManager
- tinymce-ProgressStateEvent
- tinymce-dom-BookmarkManager
- Editor command identifiers
- tinymce-Formatter
- tinymce-EditorObservable
- tinymce-ResizeEvent
- tinymce-dom-ControlSelection
- tinymce
- tinymce-Env
- tinymce-Shortcuts
- tinymce-dom-DomQuery
- tinymce-Event
- tinymce-Theme
- tinymce-dom-DOMUtils
- tinymce-UndoManager
- tinymce-dom-EventUtils
- tinymce-dom-RangeUtils
- tinymce-dom-ScriptLoader
- tinymce-dom-Selection
- tinymce-html-Schema
- tinymce-dom-Serializer
- tinymce-html-Serializer
- tinymce-util-I18n
- tinymce-dom-TreeWalker
- tinymce-html-Styles
- tinymce-util-JSON
- Cloud deployment of plugins Only
- tinymce-editor-ui-registry
- tinymce-html-Writer
- tinymce-util-JSONRequest
- Version compatibility reference
- Image & file upload options
- tinymce-geom-Rect
- tinymce-util-LocalStorage
- Configuration options reference
- Integration and setup options
- tinymce-html-DomParser
- tinymce-util-Observable
- tinymce-util-Observable
- Advanced editing behaviors
- JWT authentication setup
- tinymce-html-Entities
- tinymce-util-URI
- tinymce-util-Tools
- Content appearance options
- Localization options
- tinymce-html-Node
- tinymce-util-Color
- tinymce-util-XHR
- Content filtering options
- Spelling options
- tinymce-html-SaxParser
- tinymce-util-Delay
- Cloud deployment guide
- Content formatting options
- URL handling options
- tinymce-util-EventDispatcher
- Cloud deployment of editor & plugins
- Contribute to documentation
- Examples & demos
- Specify editor & plugin versions
- Contribute to TinyMCE development
- Basic example
- User interface options
- Case Change
- Checklist plugin
- Classic editor example
- Comments 2-0 Demo
- Custom formats example
- Custom menu item
- HTML5 formats example
- Valid elements example
- Custom toolbar button
- Format Painter
- Live example
- Embed rich media
- Full featured example
- Premium features
- Configure Enhanced Media Embed Server
- Server-side component installation
- Custom toolbar menu button
- Image tools example
- Accessibility checking
- Integrate Enhanced Media Embed Server
- Configure server-side components
- Custom toolbar split button
- Inline editor example
- Advanced source code editing
- Format Painter
- Troubleshoot server-side components
- Tiny Drive
- Local upload
- Case Change
- Get TinyMCE bugs fixed
- Professional support
- Distraction-free editor example
- Page Embed plugin
- Checking links as-you-type
- Mentions
- System requirements
- Basic local file picker
- Permanent Pen plugin
- Check Spelling As-You-Type
- Self-hosted file management
- Commenting & collaboration
- URL conversion example
- Adding custom dictionaries
- Page Embed plugin
- Cloud-based file management
- Checklist plugin
- Paste from Word
- Introduction & getting started
- Permanent Pen Plugin
- Advanced installation choices
- Logo & attribution requirements
- Basic setup
- Customizing the editor UI
- TinyMCE distraction-free editing mode
- Filtering TinyMCE content
- Setup inline editing mode
- Rails integration
- Get Support & FAQ
- Work with plugins to extend TinyMCE
- React integration
- Advanced Code Editor plugin
- Localize TinyMCE
- Integrate with other projects
- TinyMCE for Swing integration
- Advanced List plugin
- Code plugin
- Use multiple TinyMCE instances in a single page
- Angular 2+ integration
- Vue integration
- Anchor plugin
- Code Sample plugin
- Check spelling in TinyMCE
- Angular 1 integration
- WordPress integration
- Autolink plugin
- Color Picker plugin
- System requirements
- Bootstrap integration
- Migrating from TinyMCE 4-x to TinyMCE 5-0-
- Autoresize plugin
- Comments 2-0
- Uploading images and files
- Dojo integration
- TinyMCE Mobile
- Autosave plugin
- TinyMCE classic editing mode
- jQuery integration
- BBCode plugin
- Context Menu plugin
- KnockoutJS integration
- Add plugins to TinyMCE
- Case Change
- Directionality plugin
- Accessibility Checker plugin
- Character Map plugin
- Drive plugin
- Checklist plugin
- Emoticons plugin
- Format Painter
- Full Page plugin
- Full Screen plugin
- Link Checker plugin
- Help plugin
- Lists plugin
- Paste plugin
- Horizontal Rule plugin
- Media plugin
- Permanent Pen Plugin
- Table plugin
- Image plugin
- Enhanced Media Embed plugin
- PowerPaste plugin
- Template plugin
- User interface components
- Image Tools plugin
- Mentions plugin
- Preview plugin
- Text Color plugin
- Autocompleter
- Import CSS plugin
- MoxieManager plugin
- Print plugin
- Text Pattern plugin
- Context forms
- Insert Date/Time plugin
- Nonbreaking Space plugin
- Quick Toolbar plugin
- Spell Checker Pro plugin
- Context menu
- Legacy Output plugin
- Noneditable plugin
- Save plugin
- Table of Contents plugin
- Context toolbar
- Link plugin
- Page Break plugin
- Search and Replace plugin
- Visual Blocks plugin
- Custom sidebar
- Page Embed plugin
- Spell Checker plugin
- Visual Characters plugin
- Dialog
- Tab Focus plugin
- Word Count plugin
- Dialog components
- Quick start
- Custom menu items
- Toolbar buttons
- Types of toolbar buttons
Work with plugins to extend TinyMCE
For most developers, the real power of TinyMCE’s functionality is found in its plugins. Plugins either extend default editor functionality or add new functionality. For example, the Advanced List plugin adds extra options to the toolbar’s existing list controls, while the Code plugin adds entirely new functionality.
Because most people install TinyMCE via TinyMCE Cloud or by downloading a package, they mistakenly think plugins are part of the TinyMCE “core”. While all of the plugins (excluding the professional features) are included in those packages, each plugin is in a separate .js file. In fact, if you use the custom package download option, you’re able to select only the plugins you want to be included, or you can exclude all of the plugins built by the TinyMCE team.
In this section, we’ll show you how easy it is to activate a plugin by highlighting two of the more popular plugins.
Note: You must include the plugin in your download options to activate it.
Let’s start with a simple code snippet you can paste into an empty html
file (call it whatever you like, tinymce.html
works). Save the file locally, open it with your web browser and you’ll have a basic, local TinyMCE instance up and running.
<!DOCTYPE html>
<html>
<head>
<script src="https://cloud.tinymce.com/5/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
selector: 'textarea'
});
</script>
</head>
<body>
<form method="post">
<textarea>Hello, World!</textarea>
</form>
</body>
</html>
Let’s play with plugins
The code we want to work with is in the second <script>
element. Specifically the key
and its value
, which we pass as JSON
to the tinymce
object .init
method. In the example above selector
is the key and 'textarea'
is its value.
Code plugin
The Code plugin is one of the more popular plugins because it can expose the editable area’s raw html
to the user. It also provides an excellent example because it adds a menu item and toolbar button as well as having advanced customization options.
The first thing we need to do is include the actual plugins
key and assign it a value. Since we’re starting with the code
plugin that value is going to be 'code'
for this example.
tinymce.init({
selector: 'textarea', // note the comma at the end of the line!
plugins: 'code'
});
Add plugins: 'code'
to your tinymce.html
file, save the file, refresh your browser and you’ll see some magic. A “Tools” menu automatically appears in the menubar, and it has a “Source code” item in the drop-down. Click it and voila, you can now edit the HTML hidden by the WYSIWYG interface.
Let’s also add a toolbar control so that our users can more easily activate this functionality.
tinymce.init({
selector: 'textarea', // note the comma at the end of the line!
plugins: 'code', // note the comma at the end of the line!
toolbar: 'code'
});
Impressive! We now have a button on the toolbar users can click to get into source code mode, but we lost our default toolbar controls. We explained why this happens back in the Basic setup, so if this behavior surprises you, please re-read that section.
Let’s quickly take our minimal design one step further by deleting the menubar entirely.
tinymce.init({
selector: 'textarea', // note the comma at the end of the line!
plugins: 'code', // note the comma at the end of the line!
toolbar: 'code', // last reminder, note the comma!
menubar: false
});
Time for one more example
Even if you found the above example quite easy, hang with us we’ll show you how to extend TinyMCE’s default ordered and unordered lists. If on the other hand that was all a bit new, read this example to help your understanding.
Advanced List
The Advanced List plugin extends the default unordered and ordered list toolbar controls by adding CSS list-style-type
styled number formats and bullet types to the controls.
As before, let’s start by adding the plugins
key and giving it the Advanced List value of 'advlist'
.
tinymce.init({
selector: 'textarea', // change this value according to your HTML
plugins: 'advlist'
});
Take a look at your TinyMCE toolbar, and you’ll see the list controls now have down arrows attached (to the right of the icon). Click them, and you’ve now got extra list options.
There are more customization options if we don’t want all of those list options available to the user.
More options for customization
The advlist
plugin has two options which provide more granular control of list styles. These are advlist_bullet_styles
and advlist_number_styles
.
Many plugin options have more than one possible value. The advlist_bullet_styles
option has possible values of circle
, disc
, and square
. While the advlist_number_styles
has possible values of lower-alpha
, lower-greek
, lower-roman
, upper-alpha
, and upper-roman
.
Don’t worry if you can’t remember all these values. The plugins section goes into great detail explaining all the plugins options, toolbars, and menu controls.
Let’s add the Advanced List options and give them some of the available options.
tinymce.init({
selector: 'textarea', // change this value according to your HTML
menubar: false,
toolbar: 'bullist, numlist',
plugins: 'advlist',
advlist_bullet_styles: 'square',
advlist_number_styles: 'lower-alpha,lower-roman,upper-alpha,upper-roman'
});
In the above example, we learned how to remove the menubar, add specific list controls to the toolbar while removing others, activate a plugin, and customize the plugin’s behavior by controlling which options we wanted to be activated. In 5 lines of code (excluding the selector
key, which has to be included for TinyMCE to work).
As we noted at the start TinyMCE is an incredibly powerful, flexible, and customizable rich text editor. Once you’ve finished the Get Started guide, deep dive into the plugins and configuration options.
Top 10 plugins
Customizing TinyMCE with the default plugins is that easy. There are 40 default plugins available to developers. Let’s take a look at the 10 most popular plugins (by documentation page views).
Position | Plugin Name | Plugin Value |
---|---|---|
1 | Image | image |
2 | Paste | paste |
3 | Code | code |
4 | Image Tools | imagetools |
5 | Link | link |
6 | Table | table |
7 | Advanced Code | advcode |
8 | Media | media |
9 | PowerPaste | powerpaste |
10 | Advanced List | advlist |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论