Какая-то проблема с методом find в ie7 и ie8
Совсем затупил никогда такого не замечал. Не находит элементы xml-документа. Например такой скрипт:
$(document).ready(function(){ var doc = '<root><element>CONTENT</element><element>OTHERCONTENT</element></root>'; var element = $(doc).find('element'); alert($(element[0]).html()); }); В ie9 выводит строку "CONTENT", как и надо. В ie8 и ie7 не происходит ничего вообще. В прочих браузерах все в порядке. В чем может быть ошибка? |
Попробовал без JQuery. Странностей стало больше. Вот такой, например код:
var html = '<root><element>CONTENT</element><element>OTHERCONTENT</element></root>'; var element = document.createElement('div'); element.innerHTML = html; alert(element.innerHTML); В ie9 выводит "<root><element>CONTENT</element><element>OTHERCONTENT</element></root>", а в ie8 выводит "CONTENT</ELEMENT><ELEMENT>OTHERCONTENT</ELEMENT></ROOT>". Каким-то странным образом режет html-код |
Попробуйте способ, который описан здесь
http://javascript.ru/forum/193221-post2.html |
Все чудесатее и чудесатее. Ищу первый дочерний элемент.
var html = '<root><element>CONTENT</element><element>OTHERCONTENT</element></root>'; var element = document.createElement('div'); element.innerHTML = html; var first_child = element.childNodes[0]; alert(element.innerHTML); alert(first_child); alert(first_child.nodeValue); alert(first_child.innerHTML); В ie8 первым дочерним элементом оказывается текстовый узел с содержимым ("CONTENT"). В ie9 первый дочерний элемент как и должно быть некий элемент с содержанием "<element>CONTENT</element><element>OTHERCONTENT</element>". То есть ie8 как-то так калечит код, что распарсить его адекватно уже невозможно. |
ёмаё, IE <= 8 не воспринимает никак незнакомые теги. Вы же парсите XML как HTML -> теги root и element уходят в никуда. либо используйте способ по ссылке из моего поста, или фиксите несуществующие элементы для IE.
"root element".replace(/(\S+?)(?=\s|$)/g, function (tagName) { document.createElement(tagName); }); // криво, но в одну строчку. |
А...блин...так вот в чем дело:) Спасибо. Сейчас попробую:)
|
Часовой пояс GMT +3, время: 01:33. |