CKEditor嵌入了图像,视频,链接和其他许多不在Modal

时间:2017-12-11 23:50:59

标签: javascript twitter-bootstrap ckeditor

您好我正在使用bootstrap模式弹出窗口来打开ckeditor。它正在工作但是当我点击该图像时,该对话框中的视频链接和任何其他图标将打开,但不可点击。我找到了这个JS修复程序,但它似乎不适用于Bootstrap 4.

<script>
    CKEDITOR.replace('help_ldesc');
    //CKEDITOR.replace('help_ldesc1');

    $.fn.modal.Constructor.prototype.enforceFocus = function() {
        var $modalElement = this.$element;
        $(document).on('focusin.modal',function(e) {
                var $parent = $(e.target.parentNode);
                if ($modalElement[0] !== e.target && !$modalElement.has(e.target).length && $(e.target).parentsUntil('*[role="dialog"]').length === 0) {
                        $modalElement.focus();
                }
        });
};
</script>

演示:https://jsfiddle.net/waraywarayako/swxr110h/

从这个主题:CKEditor image dialog forms not clickable when in a modal dialog

1 个答案:

答案 0 :(得分:1)

所以在发现这个修复(https://gist.github.com/kaddopur/9996231)在Bs 3.1.1中工作后,我比较了3.1.1和新v4之间的功能。 enforceFocus功能已更改为_enforceFocus。改变它似乎解决了这个问题:

$.fn.modal.Constructor.prototype._enforceFocus = function() {
  modal_this = this
  $(document).on('focusin', function (e) {
    if (modal_this.$element[0] !== e.target && !modal_this.$element.has(e.target).length 
    && !$(e.target.parentNode).hasClass('cke_dialog_ui_input_select') 
    && !$(e.target.parentNode).hasClass('cke_dialog_ui_input_text')) {
      modal_this.$element.focus()
    }
  })
};

https://jsfiddle.net/q3xbw8o7/7/