如何爲我的wysiwyg編輯器包含RTL(從右到左)的支持。 我已經試過document.execCommand('dirRTL',false,null)。但它不起作用。 但Gmail如何做到這一點。我缺少什麼對wysiwyg編輯器的RTL支持
感謝, Gautham
如何爲我的wysiwyg編輯器包含RTL(從右到左)的支持。 我已經試過document.execCommand('dirRTL',false,null)。但它不起作用。 但Gmail如何做到這一點。我缺少什麼對wysiwyg編輯器的RTL支持
感謝, Gautham
好消息是,當涉及到RTL(從右到左)原稿方向操作系統照顧的實際問題。 你只需要將你想要應用RTL的元素作爲目標,然後將文本對齊添加到RIGHT並將其指向RTL。只有當你開始輸入阿拉伯文時,你纔會看到真實的結果,因爲不僅文字將從右到左開始,而且它的方向也是如此。
這是一個很老的問題,反正我剛剛實施了一個解決方案,所以我分享。
我用的是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
功能,因爲我有幾個編輯)
最好的解決辦法: 編輯文件:wysihtml5- 0.3.0.js並查找行wysihtml5.dom.setAttributes並添加下列行: 「direction」:「rtl」,
沒有命令可用於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);
}
其解決方案取決於插件的類型。 – undefined 2012-04-12 16:04:55
你通過插件的意思......我需要一個純JavaScript的解決方案:( – 2012-04-12 16:08:54
我的意思是你的所見即所得的編輯器的類型。它能夠更好地提供更多的細節。 – undefined 2012-04-12 16:10:51