哪些浏览器/版本支持getElementsByTagNameNS()
,以及支持的范围是多少?我似乎无法找到一个很好的参考。
[编辑]我对一个完整的参考感兴趣,但我的当前需求是从AJAX调用返回的namespaced xml(jQuery似乎没有处理btw)。
答案 0 :(得分:2)
Sitepoint says Firefox版本1.5,Safari版本3,Opera版本9。
低于3.6的Firefox版本进行了不区分大小写的搜索,即corrected in version 3.6。
Microsoft claims从IE9开始支持它。但是,according to Dottoro,这仅适用于HTML文档。我不确定你是否真的不相信Dottoro,因为无论如何选择命名空间对HTML文档都没有意义。
如果不支持getElementsByTagNameNS
,您应该能够使用XPath。但是,Wrappers是必需的,因为IE不支持标准API - 请参阅Yaldex和NCZOnline以获取有关如何使IE合作的提示。或者请微软支持。
我建议您在计划在网页的DOM上使用该功能时,确保XHTML文档实际上已经提供了XML内容类型。
Chromium 14也支持该方法(与旧的Safari版本相比,尊重命名空间)。支持可能很久以前,我只是不知道最早支持的Chrome / Chromium版本。
似乎所有浏览器都支持DOM Level 3 XPath。如果存在问题,请使用XPath替换对getElementsByTagNameNS
的调用。有关浏览器支持的介绍和说明,请参阅NCZOnline。
答案 1 :(得分:2)
我知道这是旧的,但这可能对某人有用。您可以在IE中使用普通的旧getElementsByTagName
。请致电node.getElementsByTagNameNS('someNamespace', 'someNodeName')
。
node.getElementsByTagName('someNamespace:someNodeName')
或使用以下垫片:
var getElementsByTagNameNS = function(node, ns, tagName) {
if (node.getElementsByTagNameNS) {
return node.getElementsByTagNameNS(ns, tagName);
}
return node.getElementsByTagName(ns + ':' + tagName);
};
并称之为:
getElementsByTagNameNS(someNode, 'someNamespace', 'someNodeName');
答案 2 :(得分:0)
你看过this reference了吗?
具体而言,here。