如何在extjs新打开的浏览器中获取id

时间:2016-01-22 14:50:05

标签: extjs extjs4 extjs3

我正在使用以下代码创建一个弹出窗口:

var window = Ext.create('Ext.window.Window',{
    title : headerMsg,
    width : 350,
    me:me,
    height : 250,
    layout : 'fit',
    plain : true,
    name : 'exportWin',
    id : 'exportWin' + (++eWin),
    buttonAlign : 'center',
    items : [{
        xtype : 'box',
        autoEl : {
            tag : 'iframe',
            src : url,
            id : eWin,
            name : 'ExportFrame',
            height : '100%',
            width : '100%',
            style : 'cursor:pointer;top:10px'
        }
    }
    ]
});
window.show();

一切正常,现在我需要在新打开的浏览器中获取id。

我试过window.id,self.id和this.id,但没有任何作用。 但是window.name工作正在警告' ExportFrame'正如预期的那样,window.id没有警告' eWin'变量它是警告未定义 提前谢谢!

2 个答案:

答案 0 :(得分:0)

Ext.create返回一个对象,因此您只需使用window.id来访问该对象。

要获取iframe的ID,您可以使用:

window.items.items[0].autoEl.id

我使用您的以下修改过的脚本对其进行了测试:

var eWin = 1337;
var Ywindow = Ext.create('Ext.window.Window',{
            title : 'dummy',
            width : 350,
            //me:me,
            height : 250,
            layout : 'fit',
            plain : true,
            name : 'exportWin',
            id : 'exportWin' + (++eWin),
            buttonAlign : 'center',
            items : [{
                xtype : 'box',
                autoEl : {
                    tag : 'iframe',
                    src : 'https://ccc.de',
                    id : eWin,
                    name : 'ExportFrame',
                    height : '100%',
                    width : '100%',
                    style : 'cursor:pointer;top:10px'
}}]});
Ywindow.show();
console.log(Ywindow.items.items[0].autoEl.id);

但是当你在代码中写下它时:

eWin or ++eWin. // in our case: 1338

我更喜欢在Ids上引用。 这为MVVM和MVC模式提供了更多功能。 https://docs.sencha.com/extjs/6.0/application_architecture/view_controllers.html

顺便说一句,调用var窗口不是最佳的 - window是一个全局的JS浏览器对象。

因此,我为演示目的创建了一个小提琴,这应该适用于ExtJS 4+。

https://fiddle.sencha.com/#fiddle/14do

(在控制台中查看,你会找到两个ID)

答案 1 :(得分:0)

如果您想选择已创建id的{​​{1}}属性,则可以使用Ext.window.Window

如果您想选择孩子window.getId()的实际id,您可以使用类似的内容 iframe

Working fiddle

更多关于使用this answer中的ExtJS浏览DOM的信息。