富文本编辑器设置在所有富文本编辑器中保持不变

时间:2012-02-06 作者:N2Mystic

我有一个问题,我正试图更好地理解,以便在下面的脚本检查中强制mce为true。

背景:我正在将富格文本编辑器应用于类别描述文本区域,以允许用户将富格文本格式应用于类别描述。

我遇到的问题是,当用户碰巧将帖子或页面编辑器留在“HTML”选项卡上时。在这种情况下,WordPress显然正在设置一个全局标志,该标志导致下面脚本中的mce变量初始化为false。

这会在“类别描述”字段上禁用我的富文本编辑器。

我怎样才能克服这个问题?

<script type="text/javascript">
    (function(){
        var init, ed, qt, first_init, mce = false;

//mce needs to be true!!!

        if ( typeof(tinymce) == \'object\' ) {
            // mark wp_theme/ui.css as loaded
            tinymce.DOM.files[tinymce.baseURI.getURI() + \'/themes/advanced/skins/wp_theme/ui.css\'] = true;

            for ( ed in tinyMCEPreInit.mceInit ) {
                if ( first_init ) {
                    init = tinyMCEPreInit.mceInit[ed] = tinymce.extend( {}, first_init, tinyMCEPreInit.mceInit[ed] );
                } else {
                    init = first_init = tinyMCEPreInit.mceInit[ed];
                }

                if ( mce )
                    try { tinymce.init(init); } catch(e){}
            }
        }

        if ( typeof(QTags) == \'function\' ) {
            for ( qt in tinyMCEPreInit.qtInit ) {
                try { quicktags( tinyMCEPreInit.qtInit[qt] ); } catch(e){}
            }
        }
    })();

1 个回复
最合适的回答,由SO网友:Tomas Buteler 整理而成

该“全局标志”称为cookie :)

几周前,我也遇到了同样的问题,一直在寻找AJAX调用、站点选项和用户偏好,直到我找到答案。

如果您检查WP的源代码以生成遇到问题的JS函数的第一行,您将看到“true”或“false”是wp_default_editor 函数,可用于筛选。将此添加到functions.php 将导致WP忽略有人上次在编辑帖子时使用HTML选项卡这一事实,并将使TinyMCE每次都成为默认编辑器(假设页面是在能够利用富文本编辑的设备中呈现的,WP会进行检查):

add_filter(\'wp_default_editor\', \'always_start_with_tinymce\');
function always_start_with_tinymce($editor_type) {
    if(user_can_richedit()) {
        return \'tinymce\';   
    }
    return $editor_type;
}
它对我来说效果很好,因为我不得不在一个没有HTML编辑选项的textarea中强制进行富文本编辑,但它是一个与其他TinyMCE实例完全不同的页面。。。也许您的案例需要在上面的函数中进行更多检查,但希望它能引导您走上正确的道路。

结束

相关推荐

使用TinyMce编辑器的动态文本区

我需要使用TextArea和Wysiwyg编辑器。当textarea写在页面上时(不是动态的,静态的),它就工作了。。但我的问题是动态textarea。我的代码:add_action(\'admin_head\', \'load_tiny_mce\'); function load_tiny_mce() { // The \'mode\' and \'editor_selector\' options are for adding // TinyMCE t