【发布时间】:2014-02-07 23:10:36
【问题描述】:
我在波斯语网站上使用 nicEdit 作为所见即所得的编辑器。
内容的文字有时是波斯语和英语的混合词,
波斯语是一种从右到左的语言,所以编辑器的默认方向是从右到左。然后,当一个人在文本中间键入一个英文单词时,rtl 方向性就会应用在它上面并导致误读
例如
C# 会写成#C
一个解决方案是用一个span标签包围单词(例如C#),它的方向是ltr C#
但是我该如何实现呢? 我想在编辑器按键事件中,检查输入的键是否是英文的,用上面提到的span替换它,但我不知道该怎么做
换句话说,您可以将此问题视为即时更改键入文本的背景颜色
在下面我写了我正在尝试的内容,但它还不起作用
$('body').on('keypress','.nicEdit-main', function(e) {
var c= String.fromCharCode(e.which);
var isWordcharacter = c.match(/\w/);
if (isWordcharacter && !en)
{
en = true;
nicEditor.nicCommand('insertHTML', '<span dir="ltr" style="direction:ltr; background-color:#eee">');
}
else if (!isWordcharacter)
{
en = false;
// need to close or escape the current span or create a new one with the opposite direction but nor works
nicEditor.nicCommand('insertHTML', '<span dir="rtl" style="direction:rtl;>');
}
});
问题在于否则我应该逃避当前范围
【问题讨论】:
-
使用 CSS。如果您想要更多,您将需要提供您已经尝试过的任何东西。我们不是来为您工作的。
-
谢谢,当然。如何在光标位置找到当前方向
-
类似于 var textDirection = $('body').css('direction'); 的东西会将当前方向作为变量保存。如果需要更具体,可以更改选择器。
-
这解决了问题吗?
-
我正在研究它,如果我找到了解决方案我会写它,tx
标签: javascript html wysiwyg right-to-left