我在波斯语网站上使用nicEdit作为wysiwig编辑器。
内容的文本有时是波斯语和英语单词的混合,
波斯语是一种从左到右的语言,因此编辑器的默认方向是从右到左。然后,当在文本中间键入英语单词时,rtl
方向性适用于它并导致误读
例如
C#将写为#C
它的解决方案是用一个span标签包围单词(例如C#),其方向为ltr C#
但我怎样才能实现呢? 我想在编辑器按键事件中,检查输入的键是否是英文用上面提到的跨度替换它,但我不知道该怎么做
换句话说,您可以将此问题视为在飞行中更改键入文本的背景颜色
在下面我写了我正在尝试但是它还没有工作
$('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;>');
}
});
问题在于我应该逃避当前的跨度