Ext.form.ComboBox と、本体に iframe を使用する TinyMCE エディターを含むページがあります。問題は、ComboBox にフォーカスがあり、ユーザーが iframe をクリックすると、ComboBox の blur イベントが発生しないことです。ユーザーがクリックして ComboBox に戻った場合も、フォーカス イベントは発生しません。ただし、document.activeElement は iframe に変更され、正しく ComboBox に戻ります。他の誰かがこの問題を抱えているか、修正/回避策を知っていますか?
2 に答える
0
エディターは、処理できるフォーカス イベントを発生させますか? combo.blur()
そのイベントがいつ発生する必要があるかがわかれば、手動で呼び出すことができます。activeElement が変更されたことがわかれば、同じコードから手動でコンボをぼかすことができるはずです。
于 2010-07-08T14:30:24.783 に答える
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
また、iframe がレンダリングされる前に起動するため、chrome (およびおそらく Firefox 以外の他のブラウザー) で setTimeout() が必要です。タイムアウトを 0 にしてみましたが、うまくいきませんでした。
于 2012-01-04T14:50:36.590 に答える