--- title: Attr.namespaceURI slug: Web/API/Attr/namespaceURI translation_of: Web/API/Attr/namespaceURI ---
{{APIRef("DOM")}}

Attr.namespaceURI 只读属性返回属性的命名空间URI,如果该元素不在命名空间中,则返回null。

在DOM4之前,该API是在 {{domxref("Node")}} 中定义的。

语法

namespace = attribute.namespaceURI

例子

在这个片段中,正在检查一个属性的 {{domxref("localName")}} 和 namespaceURI. 如果 namespaceURI 返回XUL命名空间,并且localName返回 "browser",则该节点被理解为XUL  <browser/>

if (attribute.localName == "value" &&
    attribute.namespaceURI == "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul") {
  // this is a XUL value
}

笔记

这不是基于对范围中的命名空间声明的检查的命名空间查找的结果的计算值。
属性的命名空间URI在属性创建时被冻结。

在Firefox 3.5及更早版本中,HTML文档中HTML属性的命名空间URI为null。
在后来的版本中,遵照HTML5,就像在XHTML中一样是https://www.w3.org/1999/xhtml{{gecko_minversion_inline("1.9.2")}}

您可以使用DOM Level 2方法 {{domxref("Element.setAttributeNS")}}创建具有指定namespaceURI的属性。

根据 Namespaces in XML 规范, 属性不会从其附加的元素继承其命名空间。
如果一个属性没有明确地给出一个命名空间,它没有命名空间。

DOM本身不处理或强制命名空间验证。 DOM应用程序需要做任何必要的验证。
还要注意,一旦与特定节点相关联,命名空间前缀将无法更改。

规格

规格 状态 注释
{{SpecName("DOM4", "#dom-element-namespaceuri", "Element.namespaceuri")}} {{Spec2("DOM4")}} 初始定义

浏览器兼容性

{{Compat("api.Attr.namespaceURI")}}

其他文章