Javascript 如何在textarea中动态应用嵌套的基础语言?

Javascript 如何在textarea中动态应用嵌套的基础语言?,javascript,html,css,standards,multilingual,Javascript,Html,Css,Standards,Multilingual,我正在寻找最优雅的解决方案,将rtl和ltr语言放在一个文本区域中:例如,将阿拉伯语和html放在一起 说不要使用css创建它: direction: rtl; unicode-bidi: embed; 这对我来说无论如何都不起作用,因为html有嵌套文本的问题。阿拉伯语与右侧对齐,但html被破坏 有没有一种方法可以动态地做到这一点?标准想要添加一个嵌套的span标记,但由于用户正在动态地键入该标记,我看不出在不检测每个字符结尾的情况下这是如何实现的。由于textarea的内容被视为纯文本,

我正在寻找最优雅的解决方案,将rtl和ltr语言放在一个文本区域中:例如,将阿拉伯语和html放在一起

说不要使用css创建它:

direction: rtl;
unicode-bidi: embed;
这对我来说无论如何都不起作用,因为html有嵌套文本的问题。阿拉伯语与右侧对齐,但html被破坏


有没有一种方法可以动态地做到这一点?标准想要添加一个嵌套的span标记,但由于用户正在动态地键入该标记,我看不出在不检测每个字符结尾的情况下这是如何实现的。

由于
textarea
的内容被视为纯文本,因此不能使用任何
span
标记或任何其他标记,并且不能将其任何部分的样式设置为与其余部分不同(使用伪元素的第一行或第一个字符除外)

但是,在纯文本级别,可以使用控制字符强制执行双向嵌入。假设您将元素作为一个整体设置为
direction:rtl
(期望用户以从右到左的语言输入数据),则用户可以键入U+202A left-to-right EMBEDDING以输入从左到右的文本,如英语或HTML标记,然后通过键入U+202C POP directive FORMATTING返回到从右到左的模式结束此操作

由于大多数人不知道如何方便地键入这些字符,如果有的话,您可以在页面上为它们设置按钮:

<textarea id=msg name=msg rows=10 cols=40>
</textarea>
<br>
<button type=button onclick="append('\u202A')">→</button>
<button type=button onclick="append('\u202C')">←</button>
<script>
var msg = document.getElementById('msg');
function append(ch) {
  msg.innerHTML += ch;
  msg.focus();
}
</script>


→ ← var msg=document.getElementById('msg'); 函数附加(ch){ msg.innerHTML+=ch; msg.focus(); }
但如何将其位置向左调整?@BerkerYüceer,您可以设置
文本对齐:左
。如果需要,您可以添加一个按钮,通过更改此属性来更改对齐方式。我只想将其应用于启动了ltr字符的行。@BerkerYüceer,为什么?不管怎么说,CSS和HTML中的文本对齐是按块而不是按行进行的,对于文本区域更是如此。实际上,我在考虑一个文本区域中的每一个文本都将对齐。。喜欢使用Office Word!