在 Shadow DOM 中运行 TinyMCE
目前,不支持在 Shadow DOM 内部运行 TinyMCE 实例。
在 Shadow DOM 内部运行 TinyMCE 实例——无论是经典模式还是内联模式——可能会正常工作。
例如:
<div id="shadow-host"></div>
<script type="text/javascript">
const shadowHost = document.getElementById('shadow-host');
// 注意:Closed shadow roots 目前甚至实验性支持都不具备。
const shadow = shadowHost.attachShadow({mode: 'open'});
const node = document.createElement('textarea');
node.value = '添加到 <em>TinyMCE</em> 编辑器实例的文本 <strong>在加载时。</strong>';
shadow.appendChild(node);
tinymce.init({
// 注意:使用'target'指定 TinyMCE 编辑器实例替换的节点。
// 不要使用'selector'。
target: node,
plugins: [
"advlist", "anchor", "autolink", "charmap", "code", "fullscreen",
"help", "image", "insertdatetime", "link", "lists", "media",
"preview", "searchreplace", "table", "visualblocks",
],
toolbar: "undo redo | styles | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
});
</script>但是,TinyMCE 目前不会检查其宿主节点是否存在处于 Shadow DOM 内部的证据(例如,在宿主节点的 opening tag 之前检查 #shadow-root 字符串)。
因此,虽然 TinyMCE 实例在 Shadow DOM 内部可能会按预期工作,但目前不支持在 Shadow DOMs 内部运行 TinyMCE 实例。