javascript-插入/编辑链接模式文本字段不能被重点关注TinyMce WordPress

我在Bootstrap Modal中有一个TinyMce实例.
当我单击“插入/编辑链接”按钮时,模态会正确打开,但文本字段无法聚焦

javascript-插入/编辑链接模式文本字段不能被重点关注TinyMce WordPress

该复选框可以正确交互,但是如果我单击输入字段,则不会发生任何事情.有想法吗?

解决方法:

这里发生的实际问题是,大多数模态系统(Bootstrap Modal,Magnific Popup等)不允许聚焦不是模态子级的表单域.由于TinyMCE将其对话框附加到主体而不是模态窗口,因此将其视为模态之外的对象,从而避免了聚焦.

为了使用户能够聚焦TinyMCE对话框字段,您需要明确告诉模态系统允许在这些额外的对话框中聚焦.

在自举模式中(也是on TinyMCE’s website)

// Prevent bootstrap dialog from blocking focusin
$(document).on('focusin', function(e) {
    if ( $(e.target).closest(".container-of-dialog-i-want-to-be-able-to-use").length ) {
        e.stopImmediatePropagation();
    }
});

在“宏伟的弹出窗口”中(也为on GitHub,也为related discussion)

$.magnificPopup.open({

    /** settings **/
    callbacks: {
        open: function() {
            $.magnificPopup.instance._onFocusIn = function(e) {

                // Do nothing if target element is select2 input
                if( $(e.target).closest( '.container-of-dialog-i-want-to-be-able-to-use' ) ) {
                    return true;
                }

                // Else call parent method
                $.magnificPopup.proto._onFocusIn.call(this,e);
            };
        }
    }
});

显然,如前所述,您应该将.container-of-dialog-i想要使用,替换为…您猜对了…对话框容器的选择器.这个想法是模态仍然会阻止所有在模态之外的焦点,除非您试图将焦点集中在指定的其他“可接受”容器内.

我不确定100%是否有一个选择器可以捕获曾经生成的所有TinyMCE对话框,但出于我的用途-我专门将其与WordPress的链接面板配合使用-我成功使用了.mce-container, #wp-link-wrap作为选择器.

上一篇:javascript-IE8上的TinyMCE:文本光标问题


下一篇:TinyMCE Jquery PHP AJAX特殊字符问题