Bootstrap v4 模式的 CKEditor 问题

CKEditor issue with Bootstrap v4 modal

描述了在 Bootstrap v3 模态中使用 CKEditor 时的问题和错误修复 here >>

在 Bootstrap v4 中,函数名称从 enforceFocus 更改为 _enforceFocus

不幸的是,我的 js 技能不足以将 Bootstrap v3 的建议错误修复转换为 Bootstrap v4。

欢迎提供任何帮助:-)

这个对我有用

$.fn.modal.Constructor.prototype._enforceFocus = function _enforceFocus() {
    var _this4 = this;
    $(document).off(Event.FOCUSIN).on(Event.FOCUSIN, function (event) {
        if (
            document !== event.target
            && _this4._element !== event.target
            && $(_this4._element).has(event.target).length === 0
            && !$(event.target.parentNode).hasClass('cke_dialog_ui_input_select')
            && !$(event.target.parentNode).hasClass('cke_dialog_ui_input_text')
        ) {
            _this4._element.focus();
        }
    });
};

我从 Bootstrap v4 中提取了原始函数 _enforceFocus,并在 if 语句中添加了 !$(event.target.parentNode).hasClass('cke_dialog_ui_input_select')!$(event.target.parentNode).hasClass('cke_dialog_ui_input_text')

另一个解决方案是在显示模式时传递选项{focus: false}。此选项是 Bootstrap 4 中的新选项(请参阅 Bootstrap 4 Documentation)。使用此选项将阻止 Bootstrap 调用 _enforceFocus.