Использование Jquery для возврата элементов строки XML не работает в Internet Explorer 9 - PullRequest
0 голосов
/ 18 ноября 2010

Используя jQuery, я использую селектор и каждую функцию для перехода по именованным элементам строки XML.

например,

$("<xml><elem></elem><elem></elem></xml>").each(function() 
{ 
   alert("processing elem tag");
});

Это отлично работает в FF / Chrome / IE <8но в 9 не получается.Предположительно что-то в IE документ больше не позволяет это. </p>

Ответы [ 2 ]

0 голосов
/ 18 ноября 2010

jQuery не анализирует XML. $("<xml><elem></elem><elem></elem></xml>") создает элемент и устанавливает для его свойства innerHTML значение "<xml><elem></elem><elem></elem></xml>", что будет иметь переменные и непредсказуемые результаты.

Вам необходимо проанализировать XML с помощью встроенного в браузер синтаксического анализатора XML. Вот функция, которая делает это. Я не тестировал его в IE 9, но был бы удивлен, если бы он не работал: они реализовали DOMParser , поэтому в отличие от IE <9 он попадет в первую ветку и должен работать, если они все испортили. </p>

var parseXml;

if (window.DOMParser) {
    parseXml = function(xmlStr) {
       return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml");
    };
} else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) {
    parseXml = function(xmlStr) {
        var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        xmlDoc.loadXML(xmlStr);
        return xmlDoc;
    };
} else {
    parseXml = function() { return null; }
}

var xmlStr = "<xml><elem></elem><elem></elem></xml>";
var xmlDoc = parseXml(xmlStr);

$(xmlDoc).each(function() { 
   alert("processing elem tag");
});
0 голосов
/ 18 ноября 2010

Он не предназначен для непосредственного получения строки XML, только из ответа AJAX, например, .responseXML, в любом случае, не беспокойтесь об этом на данный момент .

В IE9 есть ошибки, это не RTM-качество, в основном это их ошибок ... Лично я бы не стал тратить время на изменение (или даже отладку) вашего кодапока их не станет более полным / стабильным.(Мнение) также не беспокойтесь о клиенте с IE9 ... они вошли в систему с ошибкой, когда устанавливали предварительную версию программного обеспечения.

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