2012-04-12 134 views
1

如何爲我的wysiwyg編輯器包含RTL(從右到左)的支持。 我已經試過document.execCommand('dirRTL',false,null)。但它不起作用。 但Gmail如何做到這一點。我缺少什麼對wysiwyg編輯器的RTL支持

感謝, Gautham

+0

其解決方案取決於插件的類型。 – undefined 2012-04-12 16:04:55

+0

你通過插件的意思......我需要一個純JavaScript的解決方案:( – 2012-04-12 16:08:54

+0

我的意思是你的所見即所得的編輯器的類型。它能夠更好地提供更多的細節。 – undefined 2012-04-12 16:10:51

回答

0

好消息是,當涉及到RTL(從右到左)原稿方向操作系統照顧的實際問題。 你只需要將你想要應用RTL的元素作爲目標,然後將文本對齊添加到RIGHT並將其指向RTL。只有當你開始輸入阿拉伯文時,你纔會看到真實的結果,因爲不僅文字將從右到左開始,而且它的方向也是如此。

0

這是一個很老的問題,反正我剛剛實施了一個解決方案,所以我分享。

我用的是bootstrap-wysihtml5-rails gem,這是基於bootstrap3-wysiwyg代碼。

編輯器與一個iframe創建的,所以我要做的只是:

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

(我用each功能,因爲我有幾個編輯)

0

最好的解決辦法: 編輯文件:wysihtml5- 0.3.0.js並查找行wysihtml5.dom.setAttributes並添加下列行: 「direction」:「rtl」,

0

沒有命令可用於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(); \t \t \t 
 
    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); 
 
}