Ext tabpanel集成第三方charts(echarts、amcharts等)的问题(报getstyle为null的错误)
最近在做ext集成charts的功能,主要是使用tabpanel,将charts集成到tab中,随便切换tab选项就会报错崩溃。
之前演示的时候也发现了该问题,由于在tab项中有加载svg文件的操作,该svg文件是比较大的,开始是怀疑有可能是加载大文件时的问题,没有注意,但是后来将charts集成后该问题重复出现,必须解决。
这里自己给自己挖了一个大坑,出现问题时其实应该在有问题的代码处打上断点,看看相关的变量的值,当时就是没有,由于考虑是大文件的问题,随即换了另外的方式来加载svg文件,但是问题依旧。
后来发现如果不去加载charts则不会有问题,初步断定问题出现在加载charts的时候,随后换了几个其他的charts来测试,问题依旧。
所有的办法都试过了,再马上要确定是ext的bug时,在心里跳出了个念头,在错误的地方debug一下吧,随即打上了断点,运行调试,我去。。。错误的原因是tab来回切换时偶然的几率会导致getstyle未定义。
随即想到,tabpanel在生成div容器标签时会生成带有层级关系的dom,为何不将charts的container换成innerct试试呢?(tabpanel的tab向为div时,会生成有id-innerct之类的dom结构),将charts的container改成该id,错误解决,问题没有出现。
总结:ext在生成dom结构时,会生成多余的一些标签,而我们使用第三方库时,往往需要容器,比如我这里用的charts和一些其他的html5的库,而容器呢往往需要宽和高,暂时还不知道ext是如何渲染这个div的,这里记住一条,容器的Id最后使用最里层的带有innerct的div作为容器,如果需要宽和高的还需要计算下第一个tab的宽和高,OK。
Ext tabpanel集成第三方charts(echarts、amcharts等)的问题(报getstyle为null的错误)的更多相关文章
- 【翻译】在Ext JS集成第三方库
原文地址:http://www.sencha.com/blog/integrating-ext-js-with-3rd-party-libraries/ 作者:Kevin Kazmierczak Ke ...
- .NetCore中的日志(2)集成第三方日志工具
.NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...
- 使用cocoaPods一键集成第三方登录(新浪微博,qq,微信)
第三方登录是现在app很常用的功能,而这个功能我已经写过两三次了...每次都写大同小异的代码真的是很痛苦,而且每次都要根据说明去添加那些依赖库,配置linkFlag什么的,完全是体力活,所以一直想把这 ...
- Ext TabPanel items高度宽度自适应
写Ext的时候经常会遇到一些莫名其妙,令人感到非常神奇的问题,甚至都没办法用语言去描述它,搞的人想请教一下百度或Google都不知道该去怎么问,简直能够令人发疯.先来看张截图吧. 有没有注意到里面的G ...
- Android中集成第三方库的方法和问题
Android中集成第三方库的方法和问题 声明: 1. 本文參考了网上同学们的现有成果,在此表示感谢,參考资料在文后有链接. 2. 本文的重点在第三部分,是在开发中遇到的问题及解决的方法.第一,第二部 ...
- InstallShield安装包中集成第三方安装包的方案选择
原文:InstallShield安装包中集成第三方安装包的方案选择[转] 我们在制作安装包时,有些情况下会涉及第三方安装的集成,这里将讨论如何调用安装第三方包,以及需要注意的事项. 第三方安装包的 ...
- iOS平台软件开发工具(一)-新建的工程使用CocoaPods工具集成第三方框架
CocoaPods是一款集合了上千个第三方开源库的开发工具,能够大幅度的提升团队项目的开发效率,降低时间成本. 那么就看一下CocoaPods这个工具在项目中的使用体现吧. 我们马上用ASIHTTPR ...
- Ionic2中集成第三方控件Sweetalert
Ionic2混合开发,入坑系列:Ionic2中集成第三方控件Sweetalert 注:Sweetalert2已经可以直接从npm中下载安装 npm install --save sweetalert2 ...
- Unity 下集成第三方原生 SDK,以极光厂商通道为例
Unity中集成三方SDK有两种方式: Unity 项目开发中时常有集成 Android 第三方 SDK 的需求,比如接入第三方推送,分享等功能.而第三方 SDK 的集成文档提到的往往是基于原生 An ...
随机推荐
- mac svn .a文件的上传方法
1.首先确认是否安装了Command Line Tools,如果没有,就Xcode-Preference-Downloads,选择Command Line Tools-install就可以了 2.打开 ...
- Preloading an Image with jQuery--reference
Preloading images will make your application a bit faster by making it lightweight. It is very simpl ...
- 从零开始学习jquery (一)
一.jquery是什么 Jquery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safar ...
- [转] boost::function用法详解
http://blog.csdn.net/benny5609/article/details/2324474 要开始使用 Boost.Function, 就要包含头文件 "boost/fun ...
- Creating a Navigation Drawer 创建一个导航侧边栏
The navigation drawer is a panel that displays the app’s main navigation options on the left edge of ...
- WebService简单使用
1.创建Webservice服务应用程序 方式一:将VS2010采用的默认框架,改为使用框架.NET Framework2.0\3.0\3.5,这时新建"项目"or新建" ...
- ScrollView、ListView嵌套
1.手动设置ListView高度 经过测试发现,在xml中直接指定ListView的高度,是可以解决这个问题的,但是ListView中的数据是可变的,实际高度还需要实际测量.于是手动代码设置ListV ...
- FckEditor组件的使用(新闻浏览发布页面)
FckEditor组件的使用 准备工作: 1)将FckEditor目录拷贝到网站根目录内. 2)在Web.config的AppSetting分支中添加如下的代码,并修改FckEditor的目录和上传文 ...
- eclipse - 自动换行
eclipse自动换行,设置的感觉不是很好用,可以从这个网址进行更新安装: http://ahtik.com/eclipse-update/
- 自由创造属于你的H5内容
在这里,你可以自由创造属于你的H5内容 mark下 http://www.ih5.cn/