2011-10-12 113 views
1

所有textareas都内联,StackedInlineDjango TinyMCE问题

所有textareas在此模型change_view中正常工作。但是,当我添加一个新行时,最后一行在textarea中不可编辑。

如果我删除了tunyMCE Init中的“textareas”模式,它会删除wsgi编辑器,但是当添加新文件时textareas会工作。所以我想它的tinyMCE会打破它。

但我已经复制这个tinyMCE文件形式的另一个项目,它的工作原理。所以我不知道wtf!

我有我的TinyMCE的设置是这样的:

媒体/ JS/TinyMCE的

然后我在模板:

模板/管理/ APP_NAME /模型名称/ change_form.html

这是我的change_form.html

{% extends "admin/change_form.html" %} 
{% load i18n %} 

{% block extrahead %}{{ block.super }} 
{% url 'admin:jsi18n' as jsi18nurl %} 
<script type="text/javascript" src="{{ jsi18nurl|default:"../../../jsi18n/" }}"></script> 
{{ media }} 

<script type="text/javascript" src="{{ MEDIA_URL }}js/jquery-1.6.4.min.js"></script> 
<script type="text/javascript" src="{{ MEDIA_URL }}js/tiny_mce/tiny_mce.js"></script> 
<script type="text/javascript"> 
function CustomFileBrowser(field_name, url, type, win) { 

    var cmsURL = "/admin/filebrowser/browse/?pop=2"; 
    cmsURL = cmsURL + "&type=" + type; 

    tinyMCE.activeEditor.windowManager.open({ 
     file: cmsURL, 
     width: 850, // Your dimensions may differ - toy around with them! 
     height: 650, 
     resizable: "yes", 
     scrollbars: "yes", 
     inline: "no", // This parameter only has an effect if you use the inlinepopups plugin! 
     close_previous: "no", 
    }, { 
     window: win, 
     input: field_name, 
     editor_id: tinyMCE.selectedInstance.editorId, 
    }); 
    return false; 
}; 

    tinyMCE.init({ 
     // add these two lines for absolute urls 
     remove_script_host : false, 
     convert_urls : false, 
     // General options 
     mode : "textareas", 
     theme : "advanced", 
     plugins : "safari,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media", 
     file_browser_callback: 'CustomFileBrowser', 
     // Theme options 
     theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|styleselect,formatselect,|,undo,redo,|,link,unlink,image,code", 
     theme_advanced_buttons3 : "", 
     theme_advanced_buttons4 : "", 
     theme_advanced_toolbar_location : "top", 
     theme_advanced_toolbar_align : "left", 
     // theme_advanced_statusbar_location : "bottom", 
     theme_advanced_resizing : false, 
     width:300, 
     height:300, 
    }); 

</script> 

{% endblock %} 

{% block object-tools %} 
{% if change %}{% if not is_popup %} 
    <ul class="object-tools"> 
    <li><a href="history/" class="historylink">{% trans "History" %}</a></li> 
    {% if has_absolute_url %} 
     <li><a href="../../../r/{{ content_type_id }}/{{ object_id }}/" class="viewsitelink"> 
      {% trans "View on site" %}</a> 
     </li> 
     <li><a href="../../../r/{{ content_type_id }}/{{ object_id }}/html/" class="viewsitelink"> 
      {% trans "View source" %}</a> 
     </li> 
    {% endif%} 
    </ul> 
{% endif %}{% endif %} 
{% endblock %} 

即使如果我d在textareas.js中包含这一点,并将它包含在chnage_form.html extrahead块中。

回答

0

嗯,我找出了错在哪里。也许有人遇到同样的问题

问题是,当添加一个新行时,texarea不是由tinymce启动的,因为它只会在页面加载时执行一次。完美的感觉,所以你需要添加一个新的行后再添加功能的te​​xtarea。

这是我做的:

change_form.html,已将此添加到文件

$(".add-row a").click(function() { 
     // this is the span that the current wsgi editor is in, so I remove it 
     $($(this).parent().prev().prev().find("span")[2]s).remove(); 
     // Now I display the original textarea 
     $(this).parent().prev().prev().find("textarea").show(); 
     // and Finaly lets add MCE control to this area. 
     tinyMCE.execCommand(
          'mceAddControl', 
          false, 
          $(this).parent().prev().prev().find("textarea").attr('id') 
         ); 
    }); 
+0

而另一件事的底部!从文档就绪块中删除CustomFileBrowser表单,并将其添加到它之前,否则filebrowser将无法工作!geez这很令人沮丧 – Harry

+0

你能发布完整的重写模板文件吗? –