Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

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

Також, підтримуйте нас матеріально.

JS метод Document.execCommand()

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

Метод execCommand() в об'єкті Document є потужним інструментом у веб-розробці, призначеним для виконання команд редагування на веб-сторінці. Основна суть цього методу полягає у виконанні зазначених команд для редагування текстового вмісту в елементах, які можуть бути редаговані користувачем, таких як <textarea>, <input type="text"> або елементи з атрибутом contenteditable.

Вставка тексту:

Одним з простих застосувань execCommand() є вставка тексту у вибраний елемент. Наприклад, щоб вставити текст у <textarea> з id "myTextarea", можна використати наступний код:

document.getElementById("myTextarea").execCommand("insertText", false, "Вставлений текст");

Цей код вставляє текст "Вставлений текст" у вказаний елемент <textarea>.

Вирізання, копіювання та вставка:

execCommand() також дозволяє виконувати операції вирізання, копіювання та вставки тексту. Наприклад:

document.execCommand("cut"); // Вирізати виділений текст
document.execCommand("copy"); // Скопіювати виділений текст
document.execCommand("paste"); // Вставити текст з буфера обміну

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

Форматування тексту:

За допомогою execCommand() можна також застосовувати різноманітні форматування до тексту, наприклад, жирний, курсив, підкреслення тощо. Наприклад:

document.execCommand("bold"); // Застосувати жирний стиль до виділеного тексту
document.execCommand("italic"); // Застосувати курсив до виділеного тексту
document.execCommand("underline"); // Підкреслити виділений текст

Ці команди дозволяють швидко та легко змінити стиль виділеного тексту.

Застосування у реальних проектах

Метод execCommand() широко використовується в онлайн-редакторах тексту, блог-платформах та веб-додатках, де потрібно надавати користувачам можливість редагування текстового вмісту. Наприклад, у текстових редакторах можна знайти кнопки для форматування тексту, які використовують execCommand() для застосування стилів. Також, цей метод може бути корисним у веб-додатках, де потрібно динамічно змінювати вміст полів вводу або обробляти текстовий вміст, введений користувачем.

Порада:

Пам'ятайте, що метод execCommand() має бути використаний на елементі, який має фокус. Перед викликом цього методу переконайтеся, що елемент, на якому ви хочете виконати команду, відповідає вашим очікуванням і отримав фокус.

let editor = document.getElementById('myEditor');
editor.focus(); // Надати фокус елементу
document.execCommand('bold'); // Застосувати жирний шрифт
Порада:

Для використання методу execCommand() з власними командами, які не входять до стандартного набору, використовуйте третій параметр, що передає аргументи. Це дозволяє вам розширити функціональність методу та виконувати власні дії з текстом чи редактором.

let editor = document.getElementById('myEditor');
editor.focus();
document.execCommand('insertHTML', false, '<p>Hello, world!</p>'); // Вставити HTML-код
Порада:

Обережно використовуйте метод execCommand(), оскільки деякі його команди можуть бути застарілими або не підтримуватися деякими браузерами. Рекомендується перевіряти сумісність з різними браузерами та використовувати його тільки там, де це дійсно необхідно і безпечно.

if (document.queryCommandSupported('copy')) {
    document.execCommand('copy'); // Виконати команду копіювання, якщо підтримується
}

Синтаксис

execCommand(aCommandName, aShowDefaultUI, aValueArgument)

Параметри

*aCommandName

Рядок, що вказує назву команди для виконання.

*aShowDefaultUI

Логічне значення, що вказує, чи слід відображати типовий користувацький інтерфейс. Це не реалізовано в Mozilla.

*aValueArgument

Для команд, які вимагають вхідний аргумент, це рядок, що надає необхідну інформацію. Наприклад, для команди insertImage потрібна URL-адреса зображення для вставки. Вкажіть null, якщо аргумент не потрібний.

Return

boolean

Повертає логічне значення, яке є false, якщо команда не підтримується або вимкнена. Зверніть увагу: document.execCommand() повертає true лише у випадку, якщо виклик здійснюється у рамках взаємодії з користувачем. Ви не можете використовувати його для перевірки підтримки браузера перед викликом команди.

Переглядачі

Переглядач

1

1

1.3

9

12

Переглядач

4.4

18

4

1

Переглядач

-

-

Приклади


У цьому прикладі ми розглянемо два способи використання методу execCommand() для маніпуляції текстом на сторінці. Перший приклад буде простим і полягатиме в виконанні базової операції вставки тексту, тоді як другий приклад буде більш складним і включатиме вставку HTML-коду та зміну форматування тексту.

<header>
  <h2 class="title">execCommand() метод</h2>
  <p class="description">Використовується для виконання команди над вмістом редагованого документа.</p>
</header>
<main>
  <div class="result">
    <button onclick="insertText()">Вставити текст</button>
    <div id="editor" contenteditable="true" style="border: 1px solid #ccc; padding: 10px;">Редагований текст</div>
  </div>
</main>

<script>
  function insertText() {
    // Отримуємо елемент редактора
    var editor = document.getElementById('editor');
    // Виконуємо команду вставки тексту
    document.execCommand('insertText', false, 'Вставлений текст');
  }
</script>

У цьому прикладі при кліці на кнопку "Вставити текст" викликається функція insertText(), яка використовує метод execCommand() для вставки тексту у вміст редагованого елемента. Метод execCommand('insertText', false, 'Вставлений текст') приймає три параметри: команду, false для відміни стандартної обробки браузера та текст, який потрібно вставити.

<header>
  <h2 class="title">execCommand() метод</h2>
  <p class="description">Використовується для виконання команди над вмістом редагованого документа.</p>
</header>
<main>
  <div class="result">
    <button onclick="insertHTML()">Вставити HTML</button>
    <button onclick="changeFormat()">Змінити формат тексту</button>
    <div id="editor" contenteditable="true" style="border: 1px solid #ccc; padding: 10px;">Редагований текст</div>
  </div>
</main>

<script>
  function insertHTML() {
    // Отримуємо елемент редактора
    var editor = document.getElementById('editor');
    // Виконуємо команду вставки HTML
    document.execCommand('insertHTML', false, '<strong>Вставлений HTML</strong>');
  }

  function changeFormat() {
    // Отримуємо елемент редактора
    var editor = document.getElementById('editor');
    // Виконуємо команду зміни формату тексту
    document.execCommand('formatBlock', false, '<h1>');
  }
</script>