Простой dojo.query над документом XML не удается в IE - PullRequest
1 голос
/ 02 ноября 2011

У меня очень простой dojo.query над документом xml, который работает в FireFox и Chrome, но не работает в IE.В IE эта строка выдает ошибку 'undefined' is null or not an object.

var result = dojo.query("list > country", response);

Ошибка в dojo происходит в eval code в следующей функции.Номер строки - 791.

// get an array of child *elements*, skipping text and comment nodes
var _childElements = function(filterFunc){
    filterFunc = filterFunc||yesman;
    return function(root, ret, bag){
        // get an array of child elements, skipping text and comment nodes
        var te, x = 0, tret = root[childNodesName];
        // THE ERROR HAPPENS HERE.  tret is 'undefined'
        while(te = tret[x++]){
            if(
                _simpleNodeTest(te) &&
                (!bag || _isUnique(te, bag)) &&
                (filterFunc(te, x))
            ){
                ret.push(te);
            }
        }
        return ret;
    };
};

Я подтвердил (с помощью IE Developer Tools), что ответ действителен и для него задан экземпляр IXMLDOMDocument2 с соответствующими дочерними узлами.Ответ, предоставленный методом dojo.xhrGet, где у меня есть handleAs: "xml".

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<countries>
 <list>
   <country>
    <code>1</code>
    <name>UNITED STATES</name>
   </country>
   <country>
    <code>2</code>
    <name>UNITED KINGDOM</name>
   </country>
   <!-- Snip -->
  </list>
</countries>

dojo.query - это первая попытка доступа к переменной result.Это известная проблема?Есть ли обходной путь?

1 Ответ

1 голос
/ 02 ноября 2011

Я только что подтвердил, что вы встретили ошибку додзё . Вы можете исправить это, обновившись до 1.7 или попробуйте , применив этот патч , изменив вхождения

root[childNodesName]

до

root.children || root.childNodes

в файле dojo / selector / acme.js

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