如何为我的所见即所得编辑器包含 RTL(从右到左)支持。我已经试过了document.execCommand('dirRTL', false, null)
。但它不起作用。但是 Gmail 是如何做到的。我错过了什么吗?
谢谢,高瑟姆
如何为我的所见即所得编辑器包含 RTL(从右到左)支持。我已经试过了document.execCommand('dirRTL', false, null)
。但它不起作用。但是 Gmail 是如何做到的。我错过了什么吗?
谢谢,高瑟姆
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);
}
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)
好消息是,当涉及到 RTL(从右到左)文档方向时,操作系统会处理真正的问题。您只需定位要应用 RTL 的元素并将文本对齐添加到 RIGHT 并将方向添加到 RTL。只有当您开始输入阿拉伯文时,您才会看到真正的结果,因为不仅书写将从右到左开始,而且它的方向也是如此。
最佳解决方案:编辑文件:wysihtml5-0.3.0.js 并找到 wysihtml5.dom.setAttributes 行并添加以下行:“direction”:“rtl”,