У меня очень простой 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
.Это известная проблема?Есть ли обходной путь?