0

我有一个 TinyMCE (v5) 的实例,它位于 iframe 本身内。但是,我希望在父页面中提交表单时包含其内容。由于它的内容不会自动添加到 POST 数据中,我试图拦截表单提交,将 TinyMCE 实例的内容复制到 iframe 之外的隐藏字段,然后继续提交。

但是,我无法访问 iframe 中的 TinyMCE 实例。

我设法以这种方式访问​​ iframe 的内容: $('#iframe').contents().find('[name="input"]')

而且我知道要获取 TinyMCE 实例的内容,我们应该使用getContent(). 但是,我无法从 iframe 外部获取 TinyMCE 实例。

target我还尝试使用选项而不是从 iframe 外部(即从父页面)初始化 TinyMCE selector,但在这种情况下,TinyMCE 甚至无法正确初始化。

有没有办法获取 iframe 的 TinyMCE 实例?将它保存在 iframe 中对我来说很重要,因为我希望编辑器的 CSS 独立于主页面。

4

1 回答 1

1

当您将 TinyMCE 包含到页面中时,它会将tinymce变量注册到window该页面的 ,以便您可以访问它并设置您的编辑器。

当该页面位于 iframe 中时,window要从父级访问它,您可以执行以下操作:

$('#iframe')[0].contentWindow;
// or `document.querySelector('#iframe).contentWindow` in plain JS

一旦知道这一点,就很容易访问 TinyMCE 编辑器的内容:

$("#iframe")[0].contentWindow.tinymce.editors["input-id"].getContent();
于 2020-02-28T12:24:21.227 回答