tinyMCE 4弹出工具在Colorbox Lightbox中失去焦点

tinyMCE 4弹出工具在Colorbox Lightbox中失去焦点,tinymce,colorbox,Tinymce,Colorbox,我正试图将我的网站迁移到tinyMCE 4,但我遇到了一些障碍,因为第4版仍处于测试阶段,目前关于它的文档非常稀少。我已经能够解决我的大部分问题,但这一点让我感到困惑,我甚至不知道如何确定哪里出了问题 我在那里建立了一个测试点。您会注意到,使用主页上的任何工具栏按钮都可以正常工作。您可以在输入框中键入,它们以焦点开始 问题是,当你点击链接打开一个颜色框时,这些工具就不起作用了。即使弹出窗口将出现,输入也没有焦点,您无法单击它们来输入任何内容 tinyMCE创建了自己的输入框来匹配主题,但我不知道

我正试图将我的网站迁移到tinyMCE 4,但我遇到了一些障碍,因为第4版仍处于测试阶段,目前关于它的文档非常稀少。我已经能够解决我的大部分问题,但这一点让我感到困惑,我甚至不知道如何确定哪里出了问题

我在那里建立了一个测试点。您会注意到,使用主页上的任何工具栏按钮都可以正常工作。您可以在输入框中键入,它们以焦点开始

问题是,当你点击链接打开一个颜色框时,这些工具就不起作用了。即使弹出窗口将出现,输入也没有焦点,您无法单击它们来输入任何内容


tinyMCE创建了自己的输入框来匹配主题,但我不知道他们对焦点做了什么。如果您有任何关于我应该如何继续的想法,或者更好的,关于问题是什么的想法,我们将不胜感激。

事实证明,这不是tinyMCE的问题,而是Colorbox的问题。Colorbox防止焦点集中在其容器之外的任何内容,tinyMCE在Colorbox容器之外创建其元素。在色盒代码中有一个名为“trapFocus”的函数创建了这种行为。代码如下

function trapFocus(e) {
if ('contains' in $box[0] && !$box[0].contains(e.target)) {
        e.stopPropagation();
        $box.focus();
    }
}

注释掉函数内部的内容,而不是函数本身,可以让元素保留并接受焦点,并防止Colorbox干扰它。我希望这能帮助其他遇到这个问题的人。

等待tinymce4退出测试版-省去一些令人头痛的建议。我相信这不是他们会忽视的,因为Colorbox是一个非常流行的灯箱,但如果可以的话,我想自己解决(或者在这里的人的帮助下)。哦,天哪!!天才!!这可能帮我省去了好几天的头痛!!谢谢你这个伟大的发现!!我会给colorbox的开发者一个提示:-)事实上,通过删除整个函数,我会得到一些奇怪的点击,导致浏览器在打开colorbox时向下滚动。但是,当仅从colorbox的trapFocus函数中删除“$box.focus();”时,它(当前)都可以工作。这就是为什么我说删除函数的“内容”,但似乎删除“$box.focus();”行也可以工作。我确实删除了内容,但该函数对colorbox也有意义。。。因此,删除它的功能并不是一个完美的解决方案。lol事实证明,这个功能对colorbox来说是非常新的,当调用colorbox:-)时,可以通过设置“trapFocus:false”轻松关闭它,因此,不需要修补:)