Я написал веб-страницу (с HTML, CSS и javascript), которая загружает информацию из XML-файла, чтобы «заполнить пробелы» в элементах на стр. Все работает отлично, если я не загружаю страницу в Internet Explorer (я использую IE 11.0).Internet Explorer 11 не будет читать «getElementById» для XML и возвращает null
У меня было несколько проблем, и я работал над несколькими из них, но новые проблемы продолжают появляться, поэтому я думаю, что просто не понимаю, как IE работает с XML.
Ошибки я получаю:
Unable to get property 'querySelectorAll' of undefined or null reference
, когда я использую код:
selectedBookNodeList = bookDataDocument.getElementById(bookId);
В отладчике IE он показывает "selectedBookNodeList" как NULL, но bookDataDocument не является нулевой , Опять же, это отлично работает в Chrome и Firefox (вот ссылка: http://www.pattmayne.com/stories2/).
Почему это NULL в IE11, но он отлично работает в других браузерах ??
Вот весь код:
var bookPage;
var bookDataDocument;
var XMLConnection;
var bookDataRootNode;
var selectedBookNode;
var bookDescription;
var bookDescription2;
var bookDescription3;
var bookImage;
var bookTitle;
var paperbackLink;
var ebookLink;
function setupXML()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
XMLConnection=new XMLHttpRequest();
}
else
{// code for IE6, IE5
XMLConnection=new ActiveXObject("Microsoft.XMLHTTP");
}
XMLConnection.open("GET", "novels/book_data.xml", false);
XMLConnection.send(null);
bookDataDocument = XMLConnection.responseXML;
}
function setBook(bookId)
{
selectedBookNodeList = bookDataDocument.getElementById(bookId);
bookTitle = selectedBookNodeList.querySelectorAll("title").item(0).childNodes[0].nodeValue;
bookDescription = selectedBookNodeList.querySelectorAll("description").item(0).childNodes[0].nodeValue;
bookDescription2 = selectedBookNodeList.querySelectorAll("description2").item(0).childNodes[0].nodeValue;
bookDescription3 = selectedBookNodeList.querySelectorAll("description3").item(0).childNodes[0].nodeValue;
ebookLink = selectedBookNodeList.querySelectorAll("ebookLink").item(0).childNodes[0].nodeValue;
paperbackLink = selectedBookNodeList.querySelectorAll("paperbackLink").item(0).childNodes[0].nodeValue;
bookImage = selectedBookNodeList.querySelectorAll("coverImage").item(0).childNodes[0].nodeValue;
bookPage = document.getElementById("storiesWindow").contentWindow.document;
bookPage.getElementById("bookTitle").innerHTML = bookTitle;
bookPage.getElementById("description").innerHTML = bookDescription;
bookPage.getElementById("description2").innerHTML = bookDescription2;
bookPage.getElementById("description3").innerHTML = bookDescription3;
bookPage.getElementById("buyEbookLink").href = ebookLink;
bookPage.getElementById("buyPaperbackLink").href = paperbackLink;
bookPage.getElementById("coverImage").src=bookImage;
}
Я действительно люблю решение, но я хотел бы еще больше, чтобы понять динамику, что я, очевидно, не понимая. Я хочу использовать XML для других вещей в будущем.