TinyMCE 4.9.x до сих пор не работает в теневой дом.Есть какие нибудь идеи как это решить? - PullRequest
2 голосов
/ 18 марта 2019

Я пытаюсь инициализировать tinyMCE к элементу, который помещен в shadowDOM. (полимерные веб-компоненты), но это не работает.

Тот же самый пример ситуации, который я нашел здесь: https://embed.plnkr.co/WXtcz2GUpOhgrhWBTcAW/

У вас есть идеи, как инициализировать tinyMCE 4.9.3 для элемента в shadowDOM? (тест на FireFox 65.0.2, Chrome 72.0.3626.121)

1 Ответ

1 голос
/ 31 марта 2019
  1. Поместите TinyMCE <textarea> в световой DOM.

  2. Вставьте его в Shadow DOM с помощью элемента <slot>.

class MyElement extends HTMLElement {
  connectedCallback() {
    const textarea = document.createElement('textarea')
    this.appendChild(textarea)
    this.attachShadow({ mode: 'open' })
        .innerHTML=`<style>
                :host { outline: 5px solid blue ; display: inline-block }
            </style>
            <slot></slot>`
    tinymce.init({
      target: textarea
    })
  }  
}

customElements.define('my-element', MyElement)
<script data-require="tinymce@4.4.3" data-semver="4.4.3" src="https://cdn.tinymce.com/4/tinymce.min.js"></script>

<my-element></my-element>
...