с <div>пробелами </div> innerHTML равен <div>пробелами </div> в Internet Explorer, есть ли способ получить точное содержимое текстового узла? - PullRequest
2 голосов
/ 04 октября 2011

если вы попробуете это:

var x = document.createElement("div");
x.appendChild(document.createTextNode("    te      st    ");
alert('-->' + x.innerHTML + '<--');

ie6-7-8 предупредит

'te st '

ie9-10 и другие браузеры:

'    te      st    '

есть способ исправить это поведение в старых IE?

спасибо

p.s. Я не хочу использовать

Ответы [ 3 ]

3 голосов
/ 04 октября 2011

Нет способа исправить это в более старом IE, если пробел не отображается (используется элемент <pre> или CSS white-space: pre). Необработанные символы пробела просто не являются частью DOM в этих браузерах.

1 голос
/ 04 октября 2011

Попробуйте:

var x = document.createElement("div");
x.appendChild(document.createTextNode("    te      st    ".replace(' ','&nbsp;'));
alert('-->' + x.innerHTML + '<--');
0 голосов
/ 04 октября 2011

Если у вас нет IE для его тестирования, но вы пробовали x.textContent?

Кстати, эти пробелы «удаляются» из браузеров при рендеринге контента, так зачем они вам нужны?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...