在TinyMCE中设置默认字体大小失败

时间:2012-09-22 09:38:53

标签: javascript jquery html tinymce

我正在使用TinyMCE,我想将默认字体大小设置为12。

在这里,我为活跃的TinyMCE编辑器分配了一个变量,但它不起作用......

HTML内容:

<textarea id="text_message"></textarea>

JavaScript的:

$("#text_message").tinymce({        
    // Location of TinyMCE script
    script_url: '/static/app/a/scripts/tinymce/jscripts/tiny_mce/tiny_mce.js'
});

var fontSize = 12;
tinyMCE.activeEditor.formatter.apply('fontSize', 
{
    value: fontSize
});

1 个答案:

答案 0 :(得分:2)

您应该等待几个不同的事件阶段:

  1. 该页面在某些状态下已准备就绪。 (tinyMCE.init()也可以使用,具体视情况而定。)
  2. 编辑器已初始化,已准备就绪,可供您使用。
  3. 第一个可以使用以下任一方式完成:

    $(document).ready()
    

    或者:

    $(window).load()
    

    两者都处理与页面准备情况相关的事件。当DOM可用时会$.ready()触发,$.load()会在加载页面内容时触发window(例如内联imgscript,和link来源)。 .ready()在另一个之前略微发射,但在许多情况下要么会起作用。

    注意,下面我有jQuery(function($){...});这是$(document).ready();的快捷方式,有助于管理与全局使用$的其他框架的冲突。

    在第二阶段,您需要在编辑器创建请求中添加initialization event handler,例如:

    $.tinymce({ init_instance_callback: function(){ ... } });
    

    完整:

    $tiny.tinymce({
        // ... other stuff here, comma-delineated
        init_instance_callback: function(){
            ac = tinyMCE.activeEditor;
    
            ac.dom.setStyle(ac.getBody(), 'fontSize', fontSize);
        }
        // ... other stuff here, comma-delineated
    });
    

    您可以在此处为font-size设置显示值(使用fontSize的Javascript属性,因为Javascript在标签中不允许-例如font-size)。这等待您添加的编辑器初始化并说“嘿,我现在在这里”。获得通风口点火通知后,您可以将编辑器bodyac.getBody()返回的内容)设置为font-size: 18px

    这意味着,一旦您选择保存编辑器内容,将不会返回font-size;它在编辑器“body”(字面意思是iframe的{​​{1}}元素)之上,在大多数情况下(除非你选择plugins : "fullpage" initialization option)。所以这是一个“默认”,但没有在内容本身明确设置。

    如果您安装了带有Firebug插件的Chrome或Firefox,请观看此小提琴上的body

    http://jsfiddle.net/userdude/9PuUx/1/

    这是工作代码演示和小提示演示的链接(我使用console轻松查看更改):

    18px

    http://jsfiddle.net/userdude/9PuUx/

    tinyMCE文档和API可能有点令人困惑和缺乏,我也不是使用它的专家,所以我知道可能有四到五种其他方法来解释正在发生的事情以及如何做到这一点。你的旅费可能会改变。如果您对我这样做的方式存在问题,或者它似乎没有按您的意愿行事,请发表评论并告诉我。