Extjs iframe-将另一个页面的内容嵌入到Extjs应用程序中

lskq00tm  于 2022-09-26  发布在  其他
关注(0)|答案(1)|浏览(377)

我是在extjs中使用iframes的新手。我希望将另一个页面(另一个URL)的内容嵌入到现有的extjs应用程序中。extjs-iframe是正确的方法吗?如果是,我该如何渲染组件?任何建议都将有助于我尝试。我尝试了下面的代码,但没有看到组件被呈现/内容被嵌入。

Ext.define(Ext.panel.Panel,

    initComponent: function(){
        this.items = [{
            xtype: 'box',
            autoEl: {
                tag: 'iframe',
                src: some URL,
                width: 640,
                height: 680,
            }
        }];
        this.callParent(arguments); 
    }
});
cotxawn7

cotxawn71#

1.您可以像上面那样创建一个Extjs-js类,要呈现这个组件,您需要像下面的代码一样创建和使用它的示例。

Ext.define('Iframe', {
        extend: 'Ext.panel.Panel',
        xtype: 'sample',

        initComponent: function(){
        this.items = [{
            xtype: 'box',
            autoEl: {
                tag: 'iframe',
                src: 'https://www.sencha.com/',
                width: 640,
                height: 680,
            }
        }];
        this.callParent(arguments); 
    }
    });

    Ext.create({
            xtype: 'sample',
            renderTo: Ext.getBody()
    });

2.您可以创建如下所示的Extjs类,并在应用程序中使用它们。在我的例子中,我创建了Extjs类,并使用它的xtype在我的应用程序中使用它。
Extjs类代码:

Ext.define('MyApp.view.main.Iframe', {
extend: "Ext.panel.Panel",
xtype: 'iframe',
title: 'iframe',
initComponent: function() {
    var me = this;
    me.items = [{
        xtype: 'box',
        autoEl: {
                tag: 'iframe',
                src: 'https://www.sencha.com/',
                width: 640,
                height: 680,
            }
    }];
    this.callParent(arguments);
},
});

在我的main.js中:(主视图)

Ext.define('MyApp.view.main.Main', {
    extend: 'Ext.tab.Panel',
    xtype: 'app-main',

    requires: [
        'Ext.plugin.Viewport',
        'Ext.window.MessageBox',
        'MyApp.view.main.MainController',
        'MyApp.view.main.MainModel',
        'MyApp.view.main.List'
    ],

    controller: 'main',
    viewModel: 'main',

    ui: 'navigation',

    header: {
        layout: {
            align: 'stretchmax'
        },
        title: {
            bind: {
                text: '{name}'
            },
            flex: 0
        },
        iconCls: 'fa-th-list'
    },

    tabBar: {
        flex: 1,
        layout: {
            align: 'stretch',
            overflowHandler: 'none'
        }
    },

    items: [{
        title: 'Home',
        iconCls: 'fa-home',
        items: [{
            xtype: 'mainlist'
        }]
    }, {
        title: 'Groups',
        iconCls: 'fa-users',
        items: [{
            xtype: 'iframe'
        }]
    }, {
        title: 'Settings',
        iconCls: 'fa-cog',
        bind: {
            html: '{loremIpsum}'
        }
    }]
});

相关问题