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

Node.namespaceURI 是一个只读属性,返回节点的命名空间URI(namespace URI),如果节点不在一个命名空间中,则返回 null。当节点是文档节点时,返回当前文档的 XML 命名空间(namespace)。

在 DOM4 中, 此接口从Node 被移入 {{domxref("Element")}} 和 {{domxref("Attr")}}接口.

语法

namespace = node.namespaceURI

示例

在这个示例中, 使用 localName 和 namespaceURI来检查这个node. 如果 namespaceURI 返回 XUL 命名空间并且 localName 返回 "browser", 说明这个节点属于 XUL <browser/>.

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

备注

这不是一个计算值,它是基于检查范围内的命名空间声明的名称空间查找的结果。节点的命名空间URI在节点创建时被固定。

在Firefox 3.5或更早的版本中,HTML文档中HTML元素的名称空间URI是null。在之后的版本中,由http://www.w3.org/1999/xhtml 作为XHTML,符合HTML5. {{gecko_minversion_inline("1.9.2")}}

除了ELEMENT_NODE a和 ATTRIBUTE_NODE 以外的 nodeType 中 node 的 namespaceURI 永远是null.

你可以使用DOM2的方法 document.createElementNS 来创建一个有特殊 namespaceURI 的元素.

XML的命名空间中,属性不会从它附加到的元素继承它的命名空间。如果属性未显式地给出命名空间,则它没有命名空间.

DOM本身不处理或执行命名空间验证, 因此应该有由DOM应用程序进行必要的验证。请注意,命名空间前缀一旦与特定节点关联,则不能更改.

规范

规范 状态 备注
{{SpecName("DOM3 Core", "core.html#ID-NodeNSname", "Node.namespaceURI")}} {{Spec2("DOM3 Core")}} 当设置为 null 是指定动作.
{{SpecName("DOM2 Core", "core.html#Namespaces-Considerations", "DOM Level 2 Core: XML Namespaces")}} {{Spec2("DOM2 Core")}}  
{{SpecName("DOM2 Core", "core.html#ID-NodeNSname", "Node.namespaceURI")}} {{Spec2("DOM2 Core")}} 初始化

浏览器兼容性

{{CompatibilityTable}}
特征 Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
是否支持 {{CompatVersionUnknown}}
{{CompatNo}}46.0[1]
{{CompatVersionUnknown}} {{CompatVersionUnknown}}[2]
{{CompatNo}} {{CompatGeckoDesktop("48.0")}}[1]
{{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
特征 Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
是否支持 {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}[2]
{{CompatNo}} {{CompatGeckoMobile("48.0")}}[1]
{{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}

[1] 从DOM4标准开始, 此接口被移入{{domxref("Element")}} 和 {{domxref("Attr")}} 接口.

[2] 在 Gecko 5.0 之前 {{geckoRelease("5.0")}}, 这是一个读写属性; 从 Gecko 5.0 起,这是一个只读属性, 符合标准.

参考