Я пытаюсь проанализировать XML-файл с помощью Javascript, и я столкнулся с проблемами в IE7.Отсутствует корневой узел при загрузке XML в IE с использованием Javascript
Если у меня есть этот код:
function LoadXml()
{
var xmlPath = document.getElementById("hsTreeviewXmlPath").value;
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
alert("here1");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
alert("here2");
} catch (E) {
xmlhttp = false;
}
}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
try {
xmlhttp = new XMLHttpRequest();
alert("here3");
} catch (e) {
xmlhttp=false;
}
}
if (!xmlhttp && window.createRequest) {
try {
xmlhttp = window.createRequest();
alert("here4");
} catch (e) {
xmlhttp=false;
}
}
xmlhttp.open("GET",xmlPath,false);
xmlhttp.send(null);
var xmlDoc = xmlhttp.responseXML;
ParseXml(xmlDoc);
}
function ParseXml(xmlDoc)
{
var root = xmlDoc.documentElement;
alert(root);
for(i=0; i< root.childNodes.length; i++)
{
var node = root.childNodes[i];
if(node.nodeType ==1) //process element nodes (type 1)
{
if(node.childNodes.length > 1)
{
CreateChildren("hsTreeview",node);
}
else
{
AddNode("hsTreeview", node);
}
}
}
}
В FF и Chrome это работает правильно, добавляя узлы, как должно, но на IE7 я получаю сообщение об ошибке сценария и конкретную ошибку:
Object required
Это дает номер строки, относящейся к линии:
for(i=0; i< root.childNodes.length; i++)
{
Внимательное окно говорит мне, что в IE, й e корневой узел, который заполняется с xmlDoc.documentElement
, равен null.
Я подтвердил, используя предупреждения здесь1 и т. Д., Что в IE7 используется объект xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
.
Есть ли способ исправить это, поскольку это действительно расстраивает?
и как это сделать? Это всего лишь файл, расположенный в каталоге Sharepoint. В моем тестовом случае (с жесткого диска) он все еще не работает. –
@Alastair Можно ли переименовать файл в 'var xmlPath' с расширением .xml и загрузить веб-страницу через http? –
файл обозначен XML-файлом, путь заканчивается на «.xml». Что именно вы подразумеваете под нагрузкой через http? –