2

如何为我的所见即所得编辑器包含 RTL(从右到左)支持。我已经试过了document.execCommand('dirRTL', false, null)。但它不起作用。但是 Gmail 是如何做到的。我错过了什么吗?

谢谢,高瑟姆

4

4 回答 4

2

execCommand 中没有可用于文本方向的命令。
下面是我使用“insertHTML”在插入点插入 HTML 字符串的解决方案。

//Consider tag as the name of the command to execute eg. bold,underline,justifyRight,...

if(tag=='rtl' || tag=='ltr' ){
    var s=document.getSelection();			
    if(s==''){
        document.execCommand("insertHTML", false, "<p dir='"+tag+"'></p>");
    }else{
        document.execCommand("insertHTML", false, "<span dir='"+tag+"'>"+ document.getSelection()+"</span>");
    }
}else{
    //Default
    document.execCommand(tag,false,null);
}

于 2018-02-07T13:13:53.457 回答
1

This is quite an old question, anyway I have just implemented a solution for that so I share it.

I use the bootstrap-wysihtml5-rails gem, which is based on bootstrap3-wysiwyg code.

The editor is created with an iframe, so what I do is simply:

<script>
$(window).load(function() {
  $('iframe.wysihtml5-sandbox').each(function(i) {
    $(this).contents().find("body").css({'direction':'rtl', 'font-family':'Arial'});
  });
})
</script>

(I use each function since I have several editors)

于 2015-11-23T11:08:36.923 回答
0

好消息是,当涉及到 RTL(从右到左)文档方向时,操作系统会处理真正的问题。您只需定位要应用 RTL 的元素并将文本对齐添加到 RIGHT 并将方向添加到 RTL。只有当您开始输入阿拉伯文时,您才会看到真正的结果,因为不仅书写将从右到左开始,而且它的方向也是如此。

于 2012-09-27T21:31:09.777 回答
0

最佳解决方案:编辑文件:wysihtml5-0.3.0.js 并找到 wysihtml5.dom.setAttributes 行并添加以下行:“direction”:“rtl”,

于 2016-07-11T08:05:19.807 回答