在实例化工具栏后模拟TinyMCE RTL按钮

时间:2012-12-31 11:19:35

标签: jquery css tinymce right-to-left

有没有办法通过直接使用插件中创建的相同命令来更改连接到TinyMCE工具栏的textarea的方向性?我的意思是,我想以编程方式运行RTL方向性而不实际点击工具栏的图标。

directionality插件的源代码中,包含以下代码:

        ed.addCommand('mceDirectionRTL', function() {
            setDir("rtl");
        });

这意味着mceDirectionRTL是一个命令。我可以直接在代码中使用它吗?我试过但是没有被认出来。

我问的原因是我想在启动tinyMCE实例后运行此命令,而不是在TinyMCE工具栏的初始化/设置功能期间运行。我有一堆texraeas,有些是英语,有些有类ar表示它们是阿拉伯语,也就是RTL。

但是当我这样做时: $('ID of my textarea'_ifr').contents().find('body').attr('dir', 'rtl');

然后一切都很好,除了mceExternalToolbar(整个工具栏!)而不仅仅是textarea,变成了rtl。因此外部工具栏基本上不合适,并且倾斜到页面的右侧。但我只希望它连接的textarea有RTL文本,而不是整个工具栏!

因此,我希望以某种方式在工具栏实例化之后以外部模拟单击工具栏上的RTL按钮。这可能吗?

2 个答案:

答案 0 :(得分:4)

设置和重绘可能是一个解决方案:

http://www.tinymce.com/forum/viewtopic.php?id=9735

tinyMCE.settings['directionality'] = 'rtl';
tinyMCE.execCommand( 'mceRemoveControl', false, 'editor );
tinyMCE.execCommand( 'mceAddControl', false, 'editor );

答案 1 :(得分:1)

如果你“安装”方向性插件,你可以做这样的事情。您还需要对tinyMCE的引用。

function(directionality){
    var command = directionality == 'ltr' ? 'mceDirectionLTR' : 'mceDirectionRTL'
    for(var i = 0; i++; i<tinyMCE.editors.length;{
    tinyMCE.editors[i].execCommand(command)
    }
}

我的网站上有两位编辑。它似乎为我完成了工作。