TinyMCE - jQuery插件,在全局设置默认主题/选项

时间:2013-02-01 18:33:27

标签: jquery tinymce customization

我在所有需要WYSISYG的网页上使用TinyMCE。坦率地说,我有很多。

我实际上使用相同的代码为每个页面实例化tinymce()jquery插件,我想知道是否有一种方法可以设置我的首选选项一次,每个页面已经引用的地方,所以我不知道必须在每个页面中保留相同的庞大代码。

到目前为止,这是我对每个页面所做的事情:

<script language="javascript" type="text/javascript">
$(document).ready(function(){

$("textarea#comments").tinymce({
    script_url : '/tiny_mce/tiny_mce.js', // Location of TinyMCE script 
    // General options 
    theme : "advanced", 
    plugins : "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,advlist", 
    force_p_newlines : false, 
    force_br_newlines : true, 
    /*forced_root_block : '',*/ 
    // Theme options 
    theme_advanced_buttons1 : "bold,italic,underline,strikethrough,hr,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect|styleprops,forecolor,backcolor,|,link,unlink,image,|,bullist,numlist,removeformat,code,|,preview", 
    theme_advanced_buttons2 : "", 
    theme_advanced_buttons3 : "", 
    theme_advanced_buttons4 : "", 
    theme_advanced_toolbar_location : "top", 
    theme_advanced_toolbar_align : "left", 
    theme_advanced_statusbar_location : "bottom", 
    theme_advanced_resizing : true, 
    theme_advanced_resize_horizontal: false 
});

});
</script>

我想简单地看一下:

$("textarea#comments").tinymce();

根据我的理解,tinymce附带2个主题:高级&amp;简单。高级有太多的选择,而简单没有足够的选择。所以现在我必须挑选我的选择,但是 在每一页上重述上面的代码似乎都很疯狂。

任何想法?

2 个答案:

答案 0 :(得分:0)

初始化代码必须放在需要tinyMCE的所有页面的HEAD元素中。

在官方文档中,我们可以看到:

  

作为替代方案,tinyMCE.init语句可以放在它自己的语句中   文件并在脚本标记中引用:

<html>
<head>
<script language="javascript" type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript" src="../jscripts/tiny_mce/basic_config.js"></script>
</head>

来源:http://www.tinymce.com/wiki.php/Configuration

因此,您可以拥有一个配置文件,只需一行代码就可以在页面的头部调用它。

答案 1 :(得分:0)

另外,对于SébastienGicquels的回答,你可能有一个默认的tinymce init对象,你可以使用脚本文件加载

var init_base_object = {
    theme: 'advanced',
    language : 'en',
    ...
};

var tinymce_additional = {

    language : 'en',

    width: "800",
    height: "600",

        theme_advanced_buttons1 : "bold,italic,underline",
        theme_advanced_buttons2 : ""
};

$(document).ready(function(){
    init_obj = {element_id:'xyz', window: window};
    $.extend(true, tinymce_additional, init_base_object);
    $.extend(true, init_obj , tinymce_additional);
    tinyMCE.execCommand('mceAddFrameControl',false, init_obj);
});