3

проблема с IE, который удаляет новые строки из $ ("# содержание"). Текст()

HTML код

<div id="content"> 
<p>hello world</p> 
<p>this is a paragraph</p> 
</div> 

JQuery код

alert($("#content").text()); 

результат (IE) IE удаляет новую строку (\ п), как я могу решить эту проблему?

hello worldthis is a paragraph 

результат (FF)

hello world 
this is a paragraph 

посмотрите: http://jsfiddle.net/vB3bx/

+0

Возможный дубликат http://stackoverflow.com/questions/656605/jquery-text-call-preserves-newlines-in-firefox-but-not-in-ie –

ответ

0

Не уверен, что вы собираетесь найти решение, используя текст(), если необходимо учитывать следующее:

Из-за различий в парсерах HTML в разных браузерах, текст может быть изменен в новых символах и другой пробел.

на http://api.jquery.com/text/

2

Он отлично работает, если вы используете свойство InnerText в Div в. Попробуйте заменить

alert($("#content").text()); 

с

alert(document.getElementById("content").innerText); 
+0

undefined! http://jsfiddle.net/vB3bx/1/ – faressoft

+0

@faressoft - э-э ... что? – Sparafusile

2

Internet Explorer нормализует все белые пространства и новой строки символов в символ пробела. Насколько я знаю, вы ничего не можете с этим поделать.

кстати, похоже, что IE9 beta изменил это поведение. Я получаю новые строки.

1

Я уверен, что Симе Видас прав. Я пробовал практически все и все, что я пытаюсь (innerText, innerHTML, jQuery методы, TextRange, клонирующий элемент и помещая его в элемент pre и т. Д. И т. Д.), Пустое пространство удаляется. Я предполагаю, что IE просто удалит его при любом вызове. Он явно присутствует во время рендеринга с белого пространства: pre покажет его, но извлечение его через javascript всегда удалит пустое пространство, за исключением содержимого pre и textarea.

Это поведение изменилось в IE9. Единственным решением в более старых версиях было бы заменить новые символы строк тегами
(или что-нибудь действительно, точкой с запятой и т. Д.) На сервере, если это возможно, а затем заменить их обратно на \ n в javascript после извлечения текстового содержимого.

Смежные вопросы