私はJavascriptの初心者です:)
テキスト ブロック内のすべての段落 (タグで区切られたすべての部分を意味する) を受信できるようにしたい<br/ >
ので、言語 (ltr と rtl) に応じて、そのような段落ごとに異なる配置設定を適用できます。
たとえば、次のテキストがあるとします。
Hello<br/>שלום
「Hello」を左に、「שלום」を右に揃えたいと思います。なんとなく使えるかなdocument.evaluate
?
私はJavascriptの初心者です:)
テキスト ブロック内のすべての段落 (タグで区切られたすべての部分を意味する) を受信できるようにしたい<br/ >
ので、言語 (ltr と rtl) に応じて、そのような段落ごとに異なる配置設定を適用できます。
たとえば、次のテキストがあるとします。
Hello<br/>שלום
「Hello」を左に、「שלום」を右に揃えたいと思います。なんとなく使えるかなdocument.evaluate
?
DOM サブツリーがあると仮定すると、深さ優先でテキスト ノードと BR 要素を探すことができます。
var subtree = document.createElement('DIV');
subtree.innerHTML = 'Hello<br/>שלום';
var paragraphs = [""];
function walkSplittingOnBR(node) {
switch (node.nodeType) {
case 1:
if (node.nodeName === 'BR') { paragraphs.push(''); }
break;
case 3:
paragraphs[paragraphs.length - 1] += node.nodeValue;
}
for (var child = node.firstChild; child; child = child.nextSibling) {
walkSplittingOnBR(child);
}
}
walkSplittingOnBR(subtree);
["Hello","שלום"]
の葉paragraphs
。
「Hello」を左に、「שלום」を右に揃えたいと思います。
3 つのオプションがあります。
<span dir="rtl">שלום</div>
、セム語族のほとんどのような右から左へのスクリプトの場合と同様です。<span style="direction:rtl">שלום</span>
ClosuredetectRtlDirectionality
はヒューリスティックに RTL テキストを検出します。
を使用しdocument.getElementsByTagName("p")
ます。これが機能するには、段落を.<p>
で区切るのではなく、もちろんタグで囲む必要があり<br/>
ます。しかし<br/>
、いずれにせよ、タグは段落を作成するための間違った方法です。