3

我有一个带有 Ext.form.ComboBox 和 TinyMCE 编辑器的页面,它的主体使用 iframe。问题是当 ComboBox 具有焦点并且用户单击 iframe 时,不会触发 ComboBox 的模糊事件。如果用户单击返回 ComboBox,则也不会触发焦点事件。但是, document.activeElement 确实更改为 iframe 并正确返回 ComboBox。有没有其他人有这个问题或知道它的修复/解决方法?

4

2 回答 2

0
        setTimeout(function(){
            if($('#yourIframeID')){
                $('#yourIframeID')[0].contentWindow.document.body.onfocus = function(){
                    if(Ext.getCmp('yourComboBoxID')){
                        if(Ext.getCmp('yourComboBoxID').isExpanded){
                            Ext.getCmp('yourComboBoxID').collapse()
                        }
                    }

                }
            }
        },500);

我遇到了完全相同的问题,我认为让它工作起来会困难得多,但这就是我使用的。你必须把它放在一个函数中,并在 tinyMCE.init() 配置中将该函数设置为

oninit : yourFunctionName

我们需要 setTimeout() 因为在 chrome 中(可能在除 Firefox 之外的其他浏览器中)因为它在 iframe 渲染之前触发。我尝试了 0 超时但没有用。

于 2012-01-04T14:50:36.590 回答
0

编辑器是否触发了您可以处理的焦点事件?combo.blur()如果您能确定该事件应该何时发生,您可以手动调用。如果您能够分辨出 activeElement 发生了变化,那么您应该能够从相同的代码中手动模糊组合。

于 2010-07-08T14:30:24.783 回答