Javascript 在extjs中单击不同的frame/iframe/frameset时折叠组合框

Javascript 在extjs中单击不同的frame/iframe/frameset时折叠组合框,javascript,iframe,extjs,combobox,frame,Javascript,Iframe,Extjs,Combobox,Frame,我有一个网页,由几组框架集、框架和iFrame组成,一组在另一组中使用。页面的大致设计如下: 请注意,这里的每个帧都包含一些更多的帧集/帧/iframes。我在第3帧中有一个组合框extjs 4.2,如果我在第3帧中的任意位置单击,它就会被折叠。但是,如果我单击第1帧/第2帧或网页中除第3帧以外的任何部分,它不会调用combobox的“onblur”侦听器。我尝试将combobox.collpase函数附加到frame3的onblur事件,但没有成功。这是我的代码部分: field =

我有一个网页,由几组框架集、框架和iFrame组成,一组在另一组中使用。页面的大致设计如下:

请注意,这里的每个帧都包含一些更多的帧集/帧/iframes。我在第3帧中有一个组合框extjs 4.2,如果我在第3帧中的任意位置单击,它就会被折叠。但是,如果我单击第1帧/第2帧或网页中除第3帧以外的任何部分,它不会调用combobox的“onblur”侦听器。我尝试将combobox.collpase函数附加到frame3的onblur事件,但没有成功。这是我的代码部分:

    field = {
                xtype: 'combobox',
                store: list2,
                forceSelection: true,
                pickerAlign: 'tr-br?',
                listeners: {
                    'focus': function ( combo ) {
                         combo.expand();
                    },
                    'blur': function ( combo ) {
                         combo.collapse();
                    },
                },
                collapseComboBox: function(){
                    alert('1');  // alert is put for testing purpose
                },
                ......
            };
        // this._window gives frame 3
        this._window.attachEvent('onblur', field.collapseComboBox); 

最后,我希望组合框在失去焦点并单击网页上的任意位置后被折叠。有人能告诉我正确的方法吗?

你能展示你的HTML代码以便更好地理解吗?你可以编写一个函数来折叠第3帧上的combobox,使其失去焦点。我在附加模糊事件时处理错误的窗口。最后,我抓取了正确的iFrame并将模糊事件附加到它。因此,我的代码的最后一行是这样的。_window.frameElement.attachEvent'onblur',field.collapseComboBox;。谢谢你的帮助。