1

当我显示它时,我有一个带有 2 个工作 tinymce 编辑器的页面。Textarea 通过用户控件动态添加到页面(页面已加载)。以下 js/coffescript 旨在将 tinymce 编辑器添加到新的文本区域:

$(document).on 'nested:fieldAdded', (event) ->
  tinyMCE.execCommand("mceAddControl", false, event.field.find('textarea').attr("id"))

如果我这样做alert event.field.find('textarea').attr("id"),它会返回应该添加编辑器的文本字段的正确 ID。但是,它不会将 tinyMCE 添加到 textarea。我还可以看到,当显示警报时,页面上存在 textarea,我猜这意味着它在脚本尝试添加 tinymce 时存在。

在我身体的顶部,我有以下脚本:

<script type="text/javascript">
//<![CDATA[
tinyMCE.init({"selector":"textarea.tinymce","theme_advanced_toolbar_location":"top","theme_advanced_toolbar_align":"left","theme_advanced_statusbar_location":"bottom","theme_advanced_buttons3_add":"tablecontrols,fullscreen","plugins":"paste,table,fullscreen","dialog_type":"modal","content_css":"/assets/application.css"});
//]]>
</script>

我需要对我的脚本进行哪些更改才能成功地将 tinyMCE 添加到新的文本区域?

4

1 回答 1

2

编辑器将应用的控件tinymce需要首先呈现。关键是它需要将元素添加到 DOM 中并首先加载。

也许您可以尝试在脚本中添加一些时间延迟以添加/应用编辑器。

试试这个(可能会对你有所帮助)

做一个函数

function loadTinyMCEEditor() {
  tinyMCE.init({
  });
}

loadTinyMCEEditor()在页面完全加载并将您的动态控件添加到 DOM 后调用。

于 2013-10-03T11:19:18.010 回答