动态加载iframe。

时间:2016-05-04 14:40:03

标签: iframe extjs5

我试图动态地将iframe加载到容器上。 有两个按钮a和b,在点击每个按钮时,不同的网址应加载到iframe上。

我试过 - 1.使用两个不同的容器而不是一个,如下所示    哪个浏览器崩溃了。 2.我无法使用dom.clear切换容器内的内容。 3.我应该考虑使用不同的xtype吗?因为容器将iframe放在我想要的地方。

Ext.define('xxxxxx',{     延伸:'yyyyy',     宽度:'100%',     身高:125,     renderTo:Ext.getBody(),     项目:[{         xtype:'radiogroup',         专栏:2,         宽度:400,         水平:是的,         名称:“画布”,         项目:[
                        {                             boxLabel:'a',                             id:'i1',                             inputValue:'i1',                             handler:function(){

                            var iframe = new Ext.ux.IFrame({
                                src: 'https://www.sencha.com',
                                title: 'Hello',
                                width: "100%",
                                height: 1400,
                                renderTo: 'canvas'
                            });

                        }
                    },
                    {
                        boxLabel: 'b',
                        id: 'i2',
                        inputValue: 'i2',
                        handler: function () {
                        var iframe = new Ext.ux.IFrame({
    src: 'https://www.sencha.com/web-application-lifecycle-management-sencha-platform/',
                                width: "100%",
                                height: 1400,
                                renderTo: 'canvas'
                            });                                
                        }
                    }
            ]
},
{
    xtype: 'container',
    name: 'somename',
    id: 'canvas',       
}]

});

1 个答案:

答案 0 :(得分:0)

我必须销毁每个创建的iframe对象。 这可以根据需要动态加载iframe源。

handler: function () {

 if (iframe != undefined) 
   {
       iframe.destroy();
    }
var iframe = new Ext.ux.IFrame({                   

         src: 'https://www.sencha.com/web-application-lifecycle-management-sencha-platform/',
         width: "100%",
         height: 1400,
         renderTo: 'canvas'

    });                                
}