Ext切换tab页导致内嵌的<object>重新加载数据
来源:互联网 发布:知你所想,予你所求歌词 编辑:程序博客网 时间:2024/05/21 22:35
目前在项目中遇到一个问题,在panel中内嵌了一个<object data ="demo.svg"></object>,panel放置在tabPanel中,在每次切换tab页的时候,导致<object>中data都重新加载数据demo.svg。(注:这个现象出现在chrome,fireFox中,在IE9中不会重新加载数据)。
在网上查找了相关资料,很多人提到在tabPanel下嵌入flash也出现了类似问题,导致视频重新加载,导致该问题的主要发生的事情有:切换tab页的时候,其实是将上一个tab的div设置为“display:none”,当再次切换回来时,将div又设置为“display:block”。于是可以定位到是设置display属性导致的。
网上有人提出了解决方法,如下:
1、设置内嵌了<object>的panel的属性:hideMode:'visibility'。因为visibility和display是有区别的,visibility设置为hidden时,其在文档内的占位还是存在的,只是不显示而已。
2、设置tabPanel的监听事件“beforetabchange”:
listeners:{beforetabchange:function(tabPanel, newCard, oldCard, opts){ oldCard.setHeight(0); oldCard.setWidth(0);}}
我按照上述方法使用了,但是还是有点问题,必须来回切换两次,才能保证新开的tab页显示正常。
经过长时间找问题,发现是由于设置的height=0其实并没有立即生效,所以要来回切换两次。
于是找到一种新的解决方法,设置listeners的tabchange事件:
tabchange:function(tabPanel,newCard,oldCard,eOpts){ if(oldCard.hideMode == 'visibility'){ oldCard.body.dom.parentNode.style.height = '0px'; } if(newCard.hideMode == 'visibility'){ newCard.body.dom.parentNode.style.height = '100%'; } }
问题终于解决了,松了一口气,花了半天的时间,还是有点收获,不错,\(^o^)/~
- Ext切换tab页导致内嵌的<object>重新加载数据
- Ext tab 控件中的flash ,在firfox浏览器下,切换tab会重新加载flash
- Ext 重新加载Combobox的数据
- 切换Fragment导致fragment重新加载
- 关于切换fragment时候,重复创建销毁fragment导致重新加载数据问题
- Ext之Tab切换
- Ext Grid重新加载当前页
- Ext 重新加载grid
- Tab页的切换
- Ext中JsonStore重新设置url然后加载数据的方法
- 基于zepto的H5/移动端tab切换触摸拖动加载更多数据
- Fragment切换的时候,保存数据状态(执行onResume),不重新加载
- 多个fragment切换,而不重新加载数据的实现
- Ext下多tab的延迟加载问题
- FragmentTabHost切换不重新加载UI。(不刷新数据)
- ext js 重新加载树
- Android中横竖屏切换加载不同布局导致fragment数据丢失的问题
- Ext的gridpanel动态重新加载columnModel与store
- 读取properties文件和属性
- 关于用户满意度问题的设置
- Java操作符
- servlet上传图片 服务器路径
- SQL Server - User Accounts
- Ext切换tab页导致内嵌的<object>重新加载数据
- 详解Android中AsyncTask的使用 .
- Uploadify 3.2 使用
- 大数阶乘
- jQuery“复制到剪贴板”插件
- 关于类成员变量为引用与指针的思考
- 【露】4.26软件和UK联合加解密
- js验证总结
- 第五次上机报告