询问 TinyMCE 的状态以便在相同状态下重新初始化

Interrogate state of TinyMCE so as to re-initialise in the same state

我正在使用 TinyMCE 5。我定义了一个 image_list,我需要在页面其他地方操作图像时动态更改它。 我通过调用 tinymce.remove() 然后调用 tinyme.init() 来完成此操作,使用具有更新的 image_list.

的新配置对象进行初始化

但是如果用户改变了状态,例如通过单击 'paste as text',当编辑器重新初始化时,这些更改将丢失。

我可以查询编辑器状态,以便将其重新初始化为关闭时的状态吗?

每次您切换“粘贴为文本”时,编辑器都会触发一个事件 (PastePlainTextToggle),因此您可以选择监听该事件并跟踪它是打开还是关闭。

然后您可以(在重新初始化编辑器时)调用 editor.execCommand('mceTogglePlainTextPaste') 以启用它(如果这是在之前的编辑会话期间设置的最后状态)。

这里有一个 TinyMCE Fiddle 展示了您可以如何跟踪此设置:

http://fiddle.tinymce.com/DRgaab

找到一种方法:

tinymce.editors.<your text area name>.plugins.paste.clipboard.pasteFormat.get()

将return'text'或'html'根据当前'paste as text'设置。

当然这是没有记录的,所以不理想。

我现在找到了一种记录在案的方法:TinyMCE 5 Docs
ExecCommand 事件在(几乎)任何工具栏按钮被点击时被触发,提供了一种通过向编辑器配置对象添加类似以下内容来跟踪编辑器状态的方法:

setup: function(editor) {
   editor.on('ExecCommand', function(e) {
     alert('command was '+e.command+', value was '+e.value);
   }
 )}

在'Paste as text'按钮的情况下,命令值为'mceTogglePlainTextPaste'。 然后按照Michael Fromin的回答中的上述内容继续