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

如何在extjs新打开的浏览器中获取id,extjs,extjs4,extjs3,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 : 'ce

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

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”变量警报,它发出的警报为未定义
提前谢谢

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

比起ID,我更喜欢参考资料。 这让我从MVVM和MVC模式中获得了更多的能力。

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

因此,为了演示,我创建了一个提琴,这应该可以在ExtJS4+上使用


(在控制台中查看,您将找到两个id)

如果您想选择最近创建的
Ext.window.window
id
属性,只需使用
window.getId()

如果要选择子
iframe
的实际
id
,可以使用
Ext.dom.Query.select('iframe')[0].id


有关在中使用ExtJS在DOM中导航的详细信息。

Hii尝试了window.id,但它没有显示iframe窗口IDSure,window.id显示id:'exportWin'+(++eWin)。iframe id是eWin,对吗?首先我非常感谢您的快速回复。不,实际上,当我使用window.id时,它显示的是未定义的,但我希望看到的是“exportWin”+(++eWin)(即exportWin1、exportWin2、exportWin3…)不是eWin iframe的id将是eWin,面板的id将是“exportWin”+(++eWin)。看看小提琴,在那里你可以找到一种方法来获得两个ID。嘿,谢谢你。。。!!实际上,您正在app.js中记录这些值,但我需要的是从新创建的框架(即从window.show()创建的窗口)中获取ID;功能。我试过self.id、window.id和this.id,但都没用。谢谢。。。!!实际上,您正在app.js中记录这些值,但我需要的是从新创建的框架(即从window.show()创建的窗口)中获取ID;功能。我尝试了self.id、window.id、this.id,但我发现没有任何效果,您希望从iframe JS代码中获取id。我猜您必须将ID作为iframe url的一部分传递(或者在加载iframe内容时传递给她),因为
标记是主浏览器窗口(ExtJS工作的地方)的一部分,而iframe内容是在其他窗口中执行的。请检查这个答案,我猜这就是您要查找的-