Поддержка пространства имен IE DOM для Ajax responseXML? - PullRequest
1 голос
/ 11 января 2012

У меня есть целая библиотека JavaScript DOM / Ajax, которую я написал с нуля в 2005 году. Она отлично работает со всеми основными браузерами.Я только что протестировал его с FF9 и Chrome 16. В 2005 году он даже работал с IE6.Теперь IE9 делает чепуху.

Мой JavaScript общается с сервером с помощью Ajax.Мой сервер отправляет обратно XML с типом контента text/xml.Мой JavaScript просматривает это дерево XML DOM, возвращается в responseXML и выполняет с ним все необходимые функции.

Мой ответ XML использует пространства имен, поэтому я использую стандартные методы, учитывающие пространство имен DOM, такие как Element.getAttributeNS().На IE9 это взрывается с:

TypeError: Object doesn't support property or method 'getAttributeNS'

Конечно, если я отлаживаю JavaScript в IE9 с использованием точки останова, я вижу, что доступные методы responseXML не включают в себя ни один из DOM-методов, поддерживающих пространство имен.

Это безумие, потому что мой DOM-код, прежде чем что-либо делать с Ajax, проверяет документ веб-страницы, чтобы убедиться, что getAttributeNS поддерживается.В этом случае IE9 поддерживает пространства имен в самом документе веб-страницы (который служил как text/html, а не application/xhtml+xml, потому что, как вы уже догадались, IE9 не поддерживает это), но IE9 не поддерживает пространства имен вАякс responseXML, который служил text/xml?Что дает?

Есть ли какой-то трюк, который мне нужно использовать, чтобы IE9 поддерживал методы с поддержкой пространства имен в responseXML дереве DOM?

...