3

有没有办法通过直接使用插件中创建的相同命令来更改连接到 TinyMCE 工具栏的文本区域的方向性?我的意思是,我想以编程方式运行 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。所以外部工具栏基本上是不合适的,并且倾向于页面的右侧。但我只希望它连接的文本区域有 RTL 文本,而不是整个工具栏!

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

4

3 回答 3

4

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

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

tinyMCE.settings['directionality'] = 'rtl';
tinyMCE.execCommand( 'mceRemoveControl', false, 'editor );
tinyMCE.execCommand( 'mceAddControl', false, 'editor );
于 2012-12-31T11:38:08.397 回答
1

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

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

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

于 2015-03-03T12:07:57.137 回答
0

无需构建新插件

  1. 使用directionality插件
  2. 然后将 rtl & ltr 按钮添加到toolbar
      options:{
          selector: '#editor1',
          height: 350,
          language: 'fa_IR',
          plugins: 'directionality',
          toolbar: 'rtl ltr',
      }

样本输出

于 2022-02-07T08:39:15.437 回答