Use multiple TinyMCE instances in a single page

This section is about adding multiple editor instances to a single page. This is a common use case when using TinyMCE’s inline mode. Breaking content into sections (e.g., titles, paragraphs) allows users to edit them individually.

Multiple editor instances sharing the same configuration

The following example breaks the page into two separate editable areas. Each area shares a single editor configuration. Each editable div is provided the same class of myeditablediv. TinyMCE is loaded just for the content area the user clicks.

<!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/6/tinymce.min.js" referrerpolicy="origin"></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>
In the example above, the css selector is a class because the id must be unique.

Multiple editor instances, each with a unique configuration

The following example loads each editable area with a unique configuration of TinyMCE. This is useful when different content areas have different needs, such as providing simple configuration for editing titles and a complete configuration for editing body content. Define a tinymce.init object/method for each configuration.

<!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/6/tinymce.min.js" referrerpolicy="origin"></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>