Цитата:
Цитата:
|
> Так в любом браузере. Я тестовый скрипт привел выше.
ты забыл применить importNode когда добавлял узлы из одного документа в другой. в современных браузерах нет особой разницы между дом моделями XML и html. а вот в ие - это 2 различные хоть и похожие модели. > В каком плане? И по сравнению с чем? По сравнению с XML и CDATA секциями, содержащими html? зачем html пихать в сидату? html вполне органично вписывается в xml, в отличие от json и ему подобных |
Про importNode не знал. Тем не менее, при импорте узлы не "конвертируются". И узел <a> не становится инстансом HTMLAnchorElement.
<!DOCTYPE html>
<body>
<div></div>
<script>
var text = '<root><a href="//google.com">Google</a></root>';
if (typeof DOMParser !== 'undefined') {
parser = new DOMParser();
xmlDoc = parser.parseFromString(text, "application/xml");
} else {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(text);
}
var xmlNode = xmlDoc.documentElement.firstChild,
htmlNode = document.body.children[0];
try {
htmlNode.appendChild(document.importNode(xmlNode, true));
} catch (e) {
alert(e.message);
}
</script>
</body>
Цитата:
|
> И узел <a> не становится инстансом HTMLAnchorElement.
конечно, в xml неймспейс по умолчанию - пустая строка, а в хтмл - "http://www.w3.org/1999/xhtml") ну вот пример фильтрации вывода с использованием xslt http://habrahabr.ru/post/171557/ также можно нагенеренному пользователем контенту навешать своих классов и прочих прелестей |
Да чтож такое. Опять затупил ) И с firstChild тупанул ведь.
<!DOCTYPE html>
<body>
<div></div>
<script>
var text = '<root><a xmlns="http://www.w3.org/1999/xhtml" href="//google.com">Google</a></root>';
if (typeof DOMParser !== 'undefined') {
parser = new DOMParser();
xmlDoc = parser.parseFromString(text, "application/xml");
} else {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(text);
}
var xmlNode = xmlDoc.documentElement.firstChild,
htmlNode = document.body.children[0];
try {
htmlNode.appendChild(document.importNode(xmlNode, true));
} catch (e) {
alert(e.message);
}
</script>
</body>
|
Ссылки заработали после добавления пространства имен:)
Но остался еще один неприятный глюк - ссылки "выделяются" переходом на новую строку, в исходном коде вот такое: <p>"Если вы хотите приобрети продукт, приходите в любой" <a xmlns="http://www.w3.org/1999/xhtml" href="...">офис </a> "или" <a xmlns="http://www.w3.org/1999/xhtml" href="">салоны наших дилеров</a> "."<br></br><br></br> Не забудьте, что для совершения покупки ...</p> Т.е. ссылка переходит на новую строчку и после нее тоже переход на новую строку.
var answer = curTheme.getElementsByTagName('question')[j].childNodes[1].cloneNode(true);
var ans = document.createElement('p');
// ans.innerHTML = answer;
ans.appendChild(answer);
el('questions_insert').appendChild(ans);
При этом в ИЕ работает только вариант с innerHTML... Честно говоря, после двух дней всевозможных попыток и изучения тонны информации голова идет кругом, так что любое вправление мозгов всячески приветствуется:) |
Цитата:
Цитата:
|
Я имею в виду в коде того, что было добавлено динамически.
Да, для восьмерки я нашла костыль. Но проблема не в ИЕ, а в непонятных переносах строки:( |
А кавычки вас значит не смущают? Нет никаких переносов. И кавычек нет:-)
|
Переносы есть уже визуальные, на странице.
|
| Часовой пояс GMT +3, время: 20:34. |