ExtJS 6 Panel对象 使用 iframe

ExtJS 6  Panel对象 使用 iframe

背景:之前的项目是基于Ext3.4版本;现在要求使用Ext6.2;均为在TabPanel中某个标签面板增加iframe

本篇博客给出两个版本的示例:

  • Ext3.4 Panel使用iframe
//基于Ext3.4
var tabPanel = new Ext.TabPanel({
	...
	...
	items: [
		...
		...
		{
			title: '首页',
			region: 'center',
			border: false,
			html: "<iframe id='DashBoard' frameborder = '0' height = '100%' name='DashBoard' width = '100%' src='dashboard/DashBoard.html'/>",
			split: true,
			listeners: {
				afterrender: function (p) {
					setTimeout(function () {
						//这里调用定时器刷新了一下,看情况可以不需要;
						window.frames["DashBoard"].src = window.frames["DashBoard"].src;
					}, 3000);
				}
			}
		}
	]
});
  • Ext6.x Panel使用iframe
//基于Ext6.2
Ext.define('ECIMS.view.main.Main', {
	extend: 'Ext.panel.Panel',
	xtype: 'app-main',

	...
	...

	items: [{
			id: "dashBoard",
			title: 'DashBoard',
			border: false,
			//html: "<iframe id='DashBoard' frameborder = '0' height = '100%' name='DashBoard' width = '100%' src='dashboard/DashBoard.html'/>",//直接写会报错
			listeners: {
				afterrender: () => {
					Ext.getCmp("dashBoard").setHtml("<iframe id='DashBoard' frameborder = '0' height = '100%' name='DashBoard' width = '100%' src='dashboard/DashBoard.html'/>");
				}
			}
		}
	]

});

给出最终效果图:

总结: Ext6中不支持html为iframe的写法.依据错误提示原因不难看出是因为加载iframe的时候,这个dashBoard(id)的子面板还没有载入到浏览器dom对象中,因此会提示null/undefined的错误;

依据这个思路,那么我只需要在这个子面版加载完成后,给它设置html,问题迎刃而解;

希望本篇博客能帮助到你;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sword_happy

您的鼓励亦是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值