IE DOM命名空间支持Ajax responseXML?

时间:2012-01-11 17:13:12

标签: javascript ajax internet-explorer dom namespaces

我有一个完整的JavaScript DOM / Ajax库,我在2005年从头开始编写。它在所有主流浏览器上都运行良好。我刚刚用FF9和Chrome 16进行了测试。早在2005年,它甚至可以与IE6一起使用。现在IE9正在搞蠢事。

我的JavaScript使用Ajax与服务器对话。我的服务器发送回内容类型为text/xml的XML。我的JavaScript查看了这个在responseXML中返回的XML DOM树,并对其进行了处理。

我的响应XML使用名称空间,因此我使用标准DOM名称空间感知方法,例如Element.getAttributeNS()。在IE9上,这会爆发:

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

果然,如果我使用断点在IE9中调试JavaScript,我会看到responseXML上的可用方法不包含任何名称空间感知的DOM方法。

这很疯狂,因为我的DOM代码在完成任何Ajax之前会检查网页文档以确保支持getAttributeNS。 IE9是否支持网页文档本身的名称空间(由text/html提供,而不是application/xhtml+xml,因为,你猜对了,IE9不支持),但IE9却支持不支持Ajax responseXML上的名称空间,它被称为text/xml?是什么给了什么?

我需要一些技巧来让IE9在responseXML DOM树上支持名称空间感知方法吗?

0 个答案:

没有答案