无法在一个页面上显示多个tinymce编辑器

时间:2012-02-29 02:48:30

标签: ruby-on-rails-3 tinymce accordion

我有一个页面,我一起使用手风琴和tinymce。

对于手风琴控件中的每个展开/折叠组合,我都有一个编辑按钮。单击编辑按钮将显示包含2个输入的表单。第一个是文本框,第二个是文本区域。

我希望textarea成为一个简单的实例。手风琴控件有多个展开/折叠控件,我想为每个控件显示一个tinymce实例。

我的tinymce初始化代码如下

tinyMCE.init({
    // General options
    mode : "textareas",
    theme : "advanced",
    plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",

    // Theme options
    theme_advanced_buttons1 : "bold,italic,underline,|,blockquote,|,justifyleft,justifycenter,justifyright,justifyfull,|,paste,pastetext,pasteword,|,bullist,numlist,|,advhr,|,forecolor,formatselect",
    // theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
    theme_advanced_buttons2 : "", //"cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
    theme_advanced_buttons3 : "", //"tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
    theme_advanced_buttons4 : "", //"insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
    theme_advanced_toolbar_location : "top",
    theme_advanced_toolbar_align : "left",
    theme_advanced_statusbar_location : "bottom",
    theme_advanced_resizing : true,
});

当我在chrome和firefox上加载页面时,手风琴控件按预期显示。然而,tinymce控件只出现在第一个崩溃div中。其余的崩溃div显示常规textareas而不是tinymce编辑。

我没有在IE上测试过。

有人可以帮忙吗。我不确定我做错了什么。

提前致谢 普尼特

3 个答案:

答案 0 :(得分:1)

尝试使用mode: 'exact',并列出element设置下的所有元素ID。

答案 1 :(得分:1)

确保所有textarea元素的id不同,解决了问题。 textarea是tinymce编辑器插件出现的地方

答案 2 :(得分:0)

您可以在远程文件中分离TinyMCE代码(例如lib / tinytextarea.html),然后使用我的jquery插件加载它,当从远程文件加载时,它会更改textarea的id

$.fn.loadChangeTAreaId = function(urlpath,prefix,suffix){
    $(this).load(urlpath, function(data) {
        $(this).find('textarea[id]').andSelf().attr('id', function(index, previous) {

            return prefix+ previous+suffix;
        });
    }) 

如何使用?

$('#divContainer').loadChangeTAreaId('lib/tinytextarea.html','pre','suf');

如果前一个textarea id为“elm”,则新id为“preelmsuf”