当我显示它时,我有一个带有2个工作的tinymce编辑器的页面。使用用户控件(页面已加载)动态地将Textarea添加到页面中。以下js / coffescript旨在为新的textarea添加一个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添加到新的textarea?
答案 0 :(得分:2)
tinymce
编辑器将应用的控件需要首先渲染。关键是要求在DOM中添加元素并首先加载。
您可以尝试为脚本添加/应用编辑器添加一些时间延迟。
试试这个(可能会对你有帮助)
制作一个功能
function loadTinyMCEEditor() {
tinyMCE.init({
});
}
并在页面完全加载后调用loadTinyMCEEditor()
,并将动态控件添加到DOM。