3

Ext.form.ComboBox と、本体に iframe を使用する TinyMCE エディターを含むページがあります。問題は、ComboBox にフォーカスがあり、ユーザーが iframe をクリックすると、ComboBox の blur イベントが発生しないことです。ユーザーがクリックして ComboBox に戻った場合も、フォーカス イベントは発生しません。ただし、document.activeElement は iframe に変更され、正しく ComboBox に戻ります。他の誰かがこの問題を抱えているか、修正/回避策を知っていますか?

4

2 に答える 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 に答える