JS властивість Element.namespaceURI


Загальний опис

Властивість namespaceURI елемента в JavaScript повертає URI простору імен, в якому було створено цей елемент, або null, якщо елемент не належить до певного простору імен. Ця властивість корисна для роботи з XML-документами та документами, що використовують простори імен, такими як XHTML або SVG.

У більшості випадків, при роботі зі звичайними HTML-документами, властивість namespaceURI буде повертати null, оскільки HTML-елементи не належать до певного простору імен. Однак, якщо ви працюєте з XML або XHTML документами, ця властивість дозволяє отримати інформацію про простір імен, до якого належить елемент.

Розглянемо приклад використання властивості namespaceURI з XML-документом:

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://example.com/namespace">
  <child>Текст</child>
</root>
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlString, 'application/xml');

const rootElement = xmlDoc.documentElement;
const childElement = rootElement.firstChild;

console.log(rootElement.namespaceURI); // "http://example.com/namespace"
console.log(childElement.namespaceURI); // "http://example.com/namespace"

У цьому прикладі ми створюємо XML-документ з елементом root, який належить до простору імен http://example.com/namespace. Потім ми використовуємо DOMParser для аналізу XML-рядка та отримуємо посилання на кореневий елемент та його дочірній елемент. Виклик namespaceURI для кореневого елемента повертає URI простору імен, а для дочірнього елемента - той самий URI, оскільки він успадковує простір імен від батьківського елемента.

Властивість namespaceURI також може бути корисною при роботі з SVG-елементами, які належать до простору імен http://www.w3.org/2000/svg. Наприклад:

<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
  <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
const svgElement = document.querySelector('svg');
const circleElement = document.querySelector('circle');

console.log(svgElement.namespaceURI); // "http://www.w3.org/2000/svg"
console.log(circleElement.namespaceURI); // "http://www.w3.org/2000/svg"

У цьому прикладі ми отримуємо посилання на SVG-елемент та його дочірній елемент circle. Виклик namespaceURI для обох елементів повертає URI простору імен SVG.

Властивість namespaceURI може бути корисною у випадках, коли необхідно обробляти елементи з різних просторів імен по-різному або коли потрібно визначити, чи належить елемент до певного простору імен. Однак, якщо ви працюєте зі звичайними HTML-документами, ця властивість, ймовірно, не буде дуже корисною, оскільки HTML-елементи не належать до певного простору імен.

автор: Bond

Порада

Для досвідчених програмістів: властивість namespaceURI може бути корисною при роботі з веб-компонентами та бібліотеками, які використовують власні простори імен для створення нових елементів. Ви можете використовувати цю властивість для перевірки, чи був елемент створений вашою бібліотекою, та виконувати відповідні дії.

автор: Bond
Порада

Використовуйте властивість namespaceURI у поєднанні з властивістю localName для отримання повної інформації про елемент, включаючи його простір імен та локальне ім'я. Наприклад: const fullName = element.namespaceURI + ':' + element.localName;.

автор: Bond
Порада

Якщо ви працюєте з XML або XHTML документами, які можуть містити елементи з різних просторів імен, використовуйте властивість namespaceURI для визначення, чи належить елемент до певного простору імен, перед виконанням будь-яких операцій над ним. Це допоможе уникнути помилок та забезпечить коректну обробку елементів.

автор: Bond

Синтаксис

Element.namespaceURI

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 12.1 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
- -

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми перевіряємо, чи належить SVG-елемент до простору імен SVG, використовуючи властивість namespaceURI. Якщо елемент належить до простору імен SVG, ми змінюємо його колір на червоний.

HTML


<svg>демо</svg>

JS

const svgElement = document.querySelector('svg');

if (svgElement.namespaceURI === 'http://www.w3.org/2000/svg') {
  svgElement.style.fill = 'red';
}
автор: Bond

У даному прикладі ми демонструємо використання властивості namespaceURI для отримання URI простору імен кореневого елемента HTML документа. Після завантаження сторінки, скрипт автоматично отримує URI простору імен елемента <html> та виводить його в блок результатів. Це дозволяє розуміти, які простори імен використовуються для елементів на сторінці і може бути корисним при роботі з динамічно генерованим контентом або при взаємодії з іншими API.

автор: Bond

У цьому прикладі ми аналізуємо XML-рядок та отримуємо кореневий елемент документа. Потім ми створюємо функцію processElement, яка перевіряє простір імен елемента за допомогою властивості namespaceURI та виконує відповідні дії залежно від цього простору імен. Функція processChildren рекурсивно обходить усі дочірні елементи та викликає processElement для кожного з них.

const xmlString = `<?xml version="1.0"?>
<root xmlns="http://example.com/root" xmlns:child="http://example.com/child">
    <child:element>Дочірній елемент</child:element>
    <element>Кореневий елемент</element>
</root>`;

const xmlDoc = new DOMParser().parseFromString(xmlString, 'application/xml');

for (const element of xmlDoc.querySelectorAll('*')) {
    console.log(element.localName, '→', element.namespaceURI);
}
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід