IE 7のdivコンテンツの改行を失う
-
06-07-2019 - |
質問
divのinnerTextをソースの改行で分割しようとしています。これは以下でうまく機能します:
$('div').text().split("\r\n|\r|\n")
ただし、IE 7では改行が削除されているため、これは失敗します。私も両方を試したので、jQuery 1.3.2は故障しているようには見えません:
$('div')[0].innerText.split("\r\n|\r|\n")
and
$('div')[0].innerHTML.split("\r\n|\r|\n")
divをpreに変更しても、上記のいずれも機能しません。
ソースがDOMに解析されると、改行が表示されます。 :(これはそうですか?javascriptでそれらを取得する方法はありませんか?
解決
改行は空白であり、通常は保持されません。スペースと同じ意味です。
他のヒント
" \ r \ n"
ではなく、" \ n"
で分割を試みます。
両方を行うには、パターン" \ r?\ n"
で分割することを検討してください。
IEは、以下を除き、要素コンテンツの改行を失います:
-
pre
(およびplaintext
、今世紀に使用されたものではない) -
textarea
には、独自の文字カウントメカニズムにカウントされない偽の‘ \ r’ sも追加されます
ただし、それにもかかわらず、これは機能しません:
split(" \ r \ n | \ r | \ n")
JavaScriptのString.splitは、Javaとは異なり、正規表現パターンではなく、単純な区切り文字列を取ります。
所属していません StackOverflow