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