Perder novas linhas em div conteúdo no IE 7
-
06-07-2019 - |
Pergunta
Eu estou tentando dividir o innerText de uma div sobre as novas linhas na fonte para ele. Esta multa trabalha com:
$('div').text().split("\r\n|\r|\n")
Mas esta falha no IE 7, devido às novas linhas aparentemente sendo retirados. jQuery 1.3.2 não parecem estar em falta desde que eu também tentei tanto:
$('div')[0].innerText.split("\r\n|\r|\n")
e
$('div')[0].innerHTML.split("\r\n|\r|\n")
Nem qualquer dos trabalhos acima se eu mudar o div a um pré.
Parece que as novas linhas são uma vez que a fonte é analisado no DOM. :( É isto assim? Será que não há maneira de chegar a eles com javascript?
Solução
Newlines são espaços em branco, e geralmente não são preservados. Eles querem dizer a mesma coisa que um espaço faz.
Outras dicas
Tente divisão em "\n"
vez de "\r\n"
.
Para fazer as duas coisas, considere a divisão na "\r?\n"
padrão.
IE faz novas linhas perder no conteúdo do elemento, exceto:
- em
pre
(eplaintext
, não que que já usado neste século) - em
textarea
, onde também acrescenta espúrios ‘\ r do que não contam para os seus próprios mecanismos de caracteres de contagem
No entanto, independentemente disso, isto não vai funcionar:
split ( "\ r \ n | \ r | \ n")
String.split de JavaScript, em contraste com Java do, leva uma string delimitador simples, não um padrão de regex.