本节介绍如何在单个页面中添加多个编辑器实例。在使用TinyMCE的inline模式时,这是一种常见的使用场景。将内容拆分为多个区块(例如标题、段落)后,用户便可对各个区块进行独立编辑。

共享相同配置的多个编辑器实例

下面的示例将页面拆分为两个独立的可编辑区域。每个区域都共享同一个编辑器配置。每个可编辑的div元素都被赋予了相同的class类名myeditablediv。TinyMCE仅在用户点击的内容区域加载。

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/8/tinymce.min.js" referrerpolicy="origin" crossorigin="anonymous"></script>
  <script type="text/javascript">
  tinymce.init({
    selector: '.myeditablediv',
    inline: true,
    menubar: false
  });
  </script>
</head>

<body>
  <form method="post">
    <h1>Multiple editors on a page: Section 1</h1>
    <div class="myeditablediv" id="section001">Click here to edit the first section of content!</div>

    <h1>Multiple editors on a page: Section 2</h1>
    <div class="myeditablediv" id="section002">Click here to edit the second section of content!</div>
  </form>
</body>
</html>
在上面的示例中,CSS选择器使用的是class,因为id必须是唯一标识。

具有唯一配置的多个编辑器实例

下面的示例为每个可编辑区域都加载了TinyMCE的唯一配置。当不同的内容区域有不同的需求时,这种方法非常有用。例如,为编辑标题提供简单配置,而为编辑正文内容提供完整的配置。为每个配置定义一个tinymce.init对象/方法。

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/8/tinymce.min.js" referrerpolicy="origin" crossorigin="anonymous"></script>
  <script type="text/javascript">
  tinymce.init({
    selector: '#myeditable-h1',
    inline: true,
    menubar: false,
    toolbar: 'undo redo'
  });

  tinymce.init({
    selector: '#myeditable-div',
    inline: true
  });
  </script>
</head>

<body>
  <form method="post">
    <h1 id="myeditable-h1">This Title Can Be Edited If You Click Here</h1>

    <div id="myeditable-div">
      <p>This section of content can be edited. Click here to see how.</p>
    </div>
  </form>
</body>
</html>