返回介绍

Custom sidebar

发布于 2019-05-06 06:50:39 字数 3479 浏览 912 评论 0 收藏 0

TinyMCE allows developers to create sidebars and add custom UI widgets inside a constrained and easily accessible area of the editor. The sidebar is designed to allow administrators and plugin developers to provide additional tools that can be accessed by TinyMCE users.

Editor sidebar API

The sidebar API allows developers to add sidebars on editor instances in a similar way as adding buttons or menu items. Developers can either add sidebars directly in the tinymce.init using the setup callback or inside your plugin.

This is the syntax for the addSidebar function: editor.ui.registry.addSidebar(name:String, spec:Object)

Specification object

tooltip

The tooltip specifies a tooltip to be displayed when hovering over the sidebar toggle button.

Type: String

icon

The icon specifies an icon for the sidebar toggle button. The icon should be the name of an icon provided by the TinyMCE skin.

Type: String

onSetup

The onSetup specifies a function to be called when the panel is first created. It passes in an API object and should return a callback that takes an API. The default is (api) => (api) => {}.

onSetup is a complex property. It requires a function that takes the sidebar’s API and should return a callback that takes the sidebar’s API and returns nothing. This occurs because onSetup runs whenever the sidebar is rendered, and the returned callback is executed when the sidebar is destroyed. Therefore the returned function is essentially an onTeardown handler, and can be used to unbind events and callbacks.

Type: function

onShow

The onShow specifies a function to be called when the panel displayed. It passes in an API object.

Type: function

onHide

The onHide specifies a function to be called when the panel is hidden. It passes in an API object.

Type: function

API Object

element():HTMLElement

The element():HTMLElement function returns the root element of the sidebar panel.

Example inside the tinymce.init

tinymce.init({
  ...
  setup: function (editor) {
    editor.ui.registry.addSidebar('mysidebar', {
      tooltip: 'My sidebar',
      icon: 'settings',
      onSetup: function (api) {
        console.log('Render panel', api.element());
      },
      onShow: function (api) {
        console.log('Show panel', api.element());
        api.element().innerHTML = 'Hello world!';
      },
      onHide: function (api) {
        console.log('Hide panel', api.element());
      }
    });
  }
});

Example inside a TinyMCE plugin

tinymce.PluginManager.add('myplugin', function (editor) {
  editor.ui.registry.addSidebar('mysidebar', {
    tooltip: 'My sidebar',
    icon: 'settings',
    onSetup: function (api) {
      console.log('Render panel', api.element());
    },
    onShow: function (api) {
      console.log('Show panel', api.element());
      api.element().innerHTML = 'Hello world!';
    },
    onHide: function (api) {
      console.log('Hide panel', api.element());
    }
  });
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文