alert() блокує взаємодію з редактором TinyMCE в Publii

Коли спрацьовує вікно повідомлення (alert), створене за допомогою, наприклад,   prompt("Please select text to format");, редактор TinyMCE в Publii може стати повністю некерованим, і в результаті буде неможливо редагувати текст. Це пов'язано з тим, що alert() блокує подальші дії в браузері, зокрема і взаємодію Publii з редактором. Краще уникати використання alert() у таких випадках, оскільки він зупиняє потік виконання JavaScript, що впливає на роботу редактора.

Щоб виправити це, можна замінити alert() на більш м’яке повідомлення в самому редакторі, яке не блокує взаємодію з ним. 

 // First Button
    editor.ui.registry.addButton('first_button', {
        text: 'First Button',
        icon: 'edit',
        tooltip: 'Apply first formatting',
        onAction: function () {
            let selectedText = editor.selection.getContent();
            if (selectedText) {
                editor.insertContent(`<span class="first-format">${selectedText}</span>`);
            } else {
                editor.notificationManager.open({
                    text: "Please select text to format.",
                    type: 'warning',
                    timeout: 3000
                });
            }
        }
    });

Ви побачите таке повідомлення:

editor.notificationManager.open

Або ще цікавіше:

// First Button
    editor.ui.registry.addButton('first_button', {
        text: 'First Button',
        icon: 'edit',
        tooltip: 'Apply first formatting',
        onAction: function () {
            let selectedText = editor.selection.getContent();
            if (selectedText) {
                editor.insertContent(`<span class="first-format">${selectedText}</span>`);
            } else {
                editor.windowManager.alert("Please select text to format.");
            }
        }
    });

Ви побачите таке повідомлення:

editor.windowManager.alert

Тепер, якщо текст не обраний, користувач побачить повідомлення в редакторі (не у вікні alert), що дасть змогу продовжити роботу з редактором.

☕️Якщо Ви вважаєте цей допис корисним, можете За що я Вам буду дуже вдячний! 😊

Коментарі



Ліцензія Creative Commons
Цей твір ліцензовано на умовах Ліцензії Creative Commons Зазначення Авторства 4.0 Міжнародна.