1

私たちのアプリケーションは ExtJs を使用しており、バージョン 4.1.3 では IE で奇妙な動作が見られます。

問題は、テキストフィールド/コンボがほとんどないフォームを持つウィンドウを開くと、このウィンドウを一度閉じた後に再度開くと、テキストフィールド/コンボに適用されたフォーカス/ぼかしリスナーが機能しなくなることです。

以下は、この問題のテスト ケースです。

Ext.onReady(function(){             
    function getForm(){
        var form    =   {
            xtype:'form',
            width:550,
            items:[
                {
                    xtype:'textfield',
                    flex:1,
                    fieldLabel:'test1',
                    id:'disabledFieldId',
                    itemId:'disabledFieldId',
                    listeners:{
                        focus:function(){
                            console.log('focus first field');
                        },
                        blur:function(){
                            console.log('blur first field');
                        },
                        change:function(){
                            console.log('change first field');
                        }
                    }
                },
                {
                    xtype:'textfield',
                    flex:1,
                    fieldLabel:'test2'
                }
            ]
        };
        return form;
    }
    Ext.create('Ext.Button', {
        text: 'Open Window',
        renderTo: Ext.getBody(),
        handler: function() {
            var win     =       Ext.create('Ext.window.Window',{
                modal:true,
                items:[
                    getForm()
                ],
                width:550,
                height:200
            });
            win.show();
        }
    });
});

上記のテスト ケースでは、この問題は次の手順で確認できます。

  1. IE でページを読み込み、[ウィンドウを開く] ボタンをクリックしてウィンドウを開きます。

  2. 最初のテキストフィールドをクリックしてフォーカスすると、コンソールに「最初のフィールドにフォーカス」というステートメントが出力されます

  3. このウィンドウを閉じて、ボタンから再度開きます

  4. 最初のテキストフィールドをクリックします。コンソールには何も出力されません。フォーカス イベントはまったく発生しません。

「フォーカス」イベントと「ぼかし」イベントは発生していませんが、「変更」イベントは毎回発生することを確認しました。

ページ全体をリロードしてウィンドウを開くと、イベントが再び発生し始めます。ただし、この場合も、一度だけです。

「id」がテキストフィールドからコメントされている場合、問題なく動作することがわかりました。しかし、これは奇妙です。「id」はリスナーとどのように競合していますか? これはバグですか?

エラーがスローされないことに注意してください。また、ウィンドウが破壊され、要素が再作成されています。

これを Chrome と Firefox でもテストしたところ、この種の動作が IE でのみ発生していることがわかりました (ドキュメントとブラウザー モードを標準に設定して IE9 で確認しました)。

また、これを 4.1.1 までのバージョンでテストしたところ、IE でも問題なく動作することがわかりました。

これについて何か考えはありますか?

事前に助けてくれてありがとう。

4

1 に答える 1

0

これは、バージョン 4.1.2 および 4.1.3 で最終的にバグとして受け入れられました。それを解決できるオーバーライドは、このリンクで確認できます。

于 2013-03-07T05:07:59.117 に答える