Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   innerText вместо "\n" создает "<br>" (https://javascript.ru/forum/misc/34655-innertext-vmesto-%5Cn-sozdaet-br.html)

Bebarr Swallow 13.01.2013 23:35

innerText вместо "\n" создает "<br>"
 
function createTag(tag, attributes, inner_text) {
  var result = document.createElement(tag);

  for(var x in attributes) {
    result.setAttribute(x, attributes[x]);
  }

  result.innerText = inner_text;

  return result;
}

var a = createTag("style", {}, "#ads {\n  display: none;\n}\n"
  + ".adv {\n  display: none;\n}\n"
  + ".more {\n  display: none;\n}");

console.log(a);


Результат:
<style>#ads {<br>  display: none !important;<br>}<br>.adv {<br>  display: none !important;<br>}<br>.more {<br>  display: none !important;<br>}</style>


Практической пользы от расстановки переносов я не имею, просто заинтересовала ситуация. Почему так происходит и как исправить?

Deff 13.01.2013 23:40

result.innerHTML = inner_text;

Bebarr Swallow 13.01.2013 23:50

Цитата:

Сообщение от Deff (Сообщение 227117)
result.innerHTML = inner_text;

Пробовал, помогло. Но интересно почему же innerText создает "<br>"?

danik.js 14.01.2013 16:02

А почему он не должен этого делать? Это нестандартное свойство, его поведение нигде не описано, но как я понимаю, конвертация nl2br - это одна из фич этого свойства, и работает кажется во всех браузерах, поддерживающих innerText (кажется это все браузеры кроме Firefox)

danik.js 14.01.2013 16:03

textContent не должен ничего создавать кстати.

Vampir3 14.01.2013 16:14

+, textContent юзаю


Часовой пояс GMT +3, время: 20:36.