JS властивість Document.implementation


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

Document.implementation є властивістю, що надає доступ до об'єкта DOMImplementation, асоційованого з документом. DOMImplementation є інтерфейсом, що надає ряд методів для створення документів, перевірки можливості реалізації певних функцій у документі та інших операцій, пов'язаних із документами і DOM. Головна користь використання Document.implementation полягає в тому, що вона дозволяє розробникам створювати нові документи (наприклад, HTML або XML) програмним шляхом, а також перевіряти підтримку різних функцій DOM у браузері без необхідності безпосереднього взаємодії з конкретним документом.

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

Створення нового документа

Один із найпростіших способів використання Document.implementation - створення нового HTML або XML документа. Наприклад, для створення нового HTML документа можна використати наступний код:

let newDoc = document.implementation.createHTMLDocument("Новий Документ");
console.log(newDoc.title); // Виводить "Новий Документ"

Цей код створює новий HTML документ із заголовком "Новий Документ". Створений таким чином документ може бути використаний для динамічного додавання вмісту або для інших цілей у межах JavaScript програми.

Створення XML документа

Для створення XML документа використовується метод createDocument. Нижче наведено приклад створення простого XML документа:

let xmlDoc = document.implementation.createDocument("", "root", null);
let newNode = xmlDoc.createElement("child");
newNode.textContent = "Це текстовий вузол";
xmlDoc.documentElement.appendChild(newNode);

console.log(xmlDoc.documentElement.outerHTML);
// Виводить: <root><child>Це текстовий вузол</child></root>

У цьому прикладі створюється XML документ із кореневим елементом <root>, до якого додається дочірній елемент <child> з текстовим вмістом.

Перевірка підтримки функцій

Document.implementation також може бути використано для перевірки підтримки конкретних функцій у браузері. Наприклад, для перевірки підтримки XML документів можна використати метод hasFeature:

if (document.implementation.hasFeature("XML", "1.0")) {
    console.log("XML 1.0 підтримується");
} else {
    console.log("XML 1.0 не підтримується");
}

Цей код перевіряє, чи підтримує поточний браузер XML версії 1.0.

Використання Document.implementation надає потужні можливості для роботи з документами в JavaScript, дозволяючи розробникам виконувати складні операції, пов'язані зі створенням, модифікацією та аналізом документів, ефективно розширюючи можливості веб-розробки.

автор: Bond

Порада

Для створення нового документа, використовуйте метод createDocument об'єкта, повернутого властивістю document.implementation. Цей метод приймає як аргументи простір імен URI, кваліфіковане ім'я та тип документу, що дозволяє точно визначити структуру новоствореного документа.

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

При роботі з документами HTML, document.implementation надає метод createHTMLDocument, який спрощує процес створення HTML-документів. Це особливо зручно для створення документів, що використовуються як шаблони або для динамічного генерування контенту на стороні клієнта.

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

Використовуючи document.implementation, можна перевірити підтримку конкретних функцій документа або API браузером через метод hasFeature. Хоча цей метод більше не рекомендований до використання і завжди повертає true у новітніх браузерах, знання про його існування може бути корисним при роботі зі старими проєктами або для забезпечення зворотної сумісності.

автор: Bond

Синтаксис

Document.implementation

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 ≤12.1 12 6
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1

Приклади

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

Цей приклад ілюструє створення нового документу за допомогою document.implementation та додавання до нього нового вмісту. Потім цей вміст імпортується та вставляється у поточний документ, що дозволяє динамічно збільшити вміст сторінки. Це може бути особливо корисно для веб-додатків, що потребують генерації великої кількості вмісту на стороні клієнта, забезпечуючи при цьому ізоляцію нового вмісту від основного документа до його вставки.

HTML

<header>
  <h2 class="title">Document.implementation Property</h2>
  <p class="description">Дозволяє створювати нові документи.</p>
</header>
<main>
  <div class="result">
    <button id="createContent">Створити контент</button>
    <div id="contentArea"></div>
  </div>
</main>

CSS

body {
  font-size: 16px;
  line-height: 1.5;
  font-family: monospace;
}

header {
  background-color: #f1f1f1;
  margin-bottom: 25px;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

header h2.title {
  padding-bottom: 15px;
  border-bottom: 1px solid #999;
}

header p.description {
  font-style: italic;
  color: #222;
}

.result {
  background-color: #f8f8f8;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

JS

document.getElementById('createContent').addEventListener('click', function () {
  // Створення нового ізольованого документу
  var newDoc = document.implementation.createHTMLDocument("Новий Документ");

  // Додавання елементів до нового документу
  var newParagraph = newDoc.createElement('p');
  newParagraph.textContent = "Це новий параграф, створений у ізольованому документі.";
  newDoc.body.appendChild(newParagraph);

  // Імпортування та вставка нового елементу в основний документ
  var contentArea = document.getElementById('contentArea');
  var importedNode = document.importNode(newDoc.body, true);
  contentArea.appendChild(importedNode);
});
//# sourceURL=pen.js
автор: Bond

У цьому прикладі ми розглянемо базове використання властивості document.implementation для створення нового документа HTML. Це може бути корисно у випадках, коли необхідно динамічно генерувати новий вміст сторінки або створювати ізольований документ для подальшої обробки. Використання document.implementation дозволяє розробникам створювати нові екземпляри документів без необхідності завантаження нової веб-сторінки.

// Створення нового порожнього документа HTML
var newDoc = document.implementation.createHTMLDocument("Новий Документ");

// Додавання тексту до новоствореного документа
newDoc.body.textContent = "Це новий документ, створений за допомогою document.implementation.";

console.log(newDoc.title); // Виведення назви нового документа
автор: Bond

У другому, складнішому прикладі, ми використовуємо document.implementation для створення документа XML, який може бути використаний як RSS-стрічка. Цей метод є особливо корисним для веб-розробників, які працюють із даними у форматі XML, наприклад, для генерації новинних стрічок або інших видів машинно-читабельного контенту.

// Створення нового документа XML
var rssDoc = document.implementation.createDocument(null, "rss", null);
var channel = rssDoc.createElement("channel");

// Додавання елементів до каналу RSS
var title = rssDoc.createElement("title");
title.textContent = "Назва RSS-каналу";
var link = rssDoc.createElement("link");
link.textContent = "https://example.com";
var description = rssDoc.createElement("description");
description.textContent = "Опис RSS-каналу";

// Збирання структури документа
channel.appendChild(title);
channel.appendChild(link);
channel.appendChild(description);
rssDoc.documentElement.appendChild(channel);

console.log(new XMLSerializer().serializeToString(rssDoc)); // Виведення XML-рядка для перевірки
автор: Bond

Коментарі

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

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

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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