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。

时间: 2024-12-16 07:18:50

Ext tabpanel集成第三方charts(echarts、amcharts等)的问题(报getstyle为null的错误)的相关文章

无处不在,详解iOS集成第三方登录(SSO授权登录<无需密码>)

1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社交分享:http://www.cnblogs.com/qingche/p/3727559.html 可以和今天的一起集成使用. 2.集成前的准备工作 2.1.去ShareSDK(现为Mob)注册帐号,下载SDK,然后添加自己的应用后得到AppKey 下载地址:http://sharesdk.cn/Download 2.2.申请第三方登录的Appkey 例如: 新浪微博.腾讯微博.QQ.微信.豆瓣应用.人

Ext.TabPanel中的items详解

Ext.TabPanel中的items: (来自项目源码中的items条目代码) items:{ id:"opt1", title:"默认页面", tabTip:"这是默认页面,不可以关闭", html:"这是默认页面哦!" },,,, items里面的这一组配置究竟是创建什么组件的配置项,在哪里有说明呢?英文原版api给出了说明. If an xtype is not explicitly specified, the de

Ext.TabPanel中的items具体解释

Ext.TabPanel中的items: (来自项目源代码中的items条目代码) items:{ id:"opt1", title:"默认页面", tabTip:"这是默认页面,不能够关闭", html:"这是默认页面哦! " },,,, items里面的这一组配置到底是创建什么组件的配置项,在哪里有说明呢?英文原版api给出了说明. If an xtype is not explicitly specified, the 

Android中集成第三方库的方法和问题

声明: 1. 本文参考了网上同学们的现有成果,在此表示感谢,参考资料在文后有链接. 2. 本文的重点在第三部分,是在开发中遇到的问题及解决办法.第一,第二部分为参考网上同学们的成果加以整理而成. 3. 欢迎转载,交流,请尊重作者劳动成果:转载请注明出处,谢谢! Android中使用第三方库可能有两种:Java库.jar和原生库.so/.a,如果只是做上层APK开发,这两种库都可以通过Eclipse集成开发环境进行集成,如果是平台级开发,则都可通过源码集成.本文整理这两种集成方式使用步骤,以下假设

使用cocoaPods一键集成第三方登录(新浪微博,qq,微信)

第三方登录是现在app很常用的功能,而这个功能我已经写过两三次了...每次都写大同小异的代码真的是很痛苦,而且每次都要根据说明去添加那些依赖库,配置linkFlag什么的,完全是体力活,所以一直想把这部分代码封装一下,方便以后复用. 然后受DWZShareKit的启发,想到可以用cocoaPods来添加依赖库,完成配置,所以赶紧把之前的想法付诸行动,写了个集成第三方登录的库. 地址在这里:https://github.com/Phelthas/LXMThirdLoginManager 具体如何使

HiWork发布1.5.0新版本——集成第三方应用达到44种

HiWork将于8月14日发布1.5.0新版本,到目前为止,HiWork集成第三方应用达到44种:机器人小Hi面世,虽然她现在还很弱小,经常隐身,但你已经可以召唤她为你播报天气预报以及让她帮忙将世界多数国家语言文字翻译为中文,还可以将中文翻译为英文. 在新版本中,可以根据团队沟通需要,为访客设置账号(受限账号),将实习人员.客户.外包人员或第三方监理人员等邀请进团队中相互配合共同完成工作,阶段性工作完成之后可以停用访客账号(受限账号). 在HiWork中进行超链接分享时,团队成员可以不用点击直接

iOS8.1 编译ffmpeg和集成第三方实现直播(监控类)(三)

最近由于项目需要,接触了一下ffmpeg的编译和使用. 由于之前的版本ffmpeg编译的库比较老,对新设备,5s及5s以后的设备支持不太好,重新编译了ffmpeg静态库. 一,下载并在终端中运行脚本编译ffmpeg 脚本参考git上的:https://github.com/kewlbear/FFmpeg-iOS-build-script: 终端进入刚刚下载后的脚本文件夹下,运行sh:build-ffmpeg.sh 自动编译,有缺少yasm的按照提示操作,安装yasm 编译的是ffmpeg2.5.

只上传APK而不进行反编译,在服务器集成第三方SDK。是如何实现的

============问题描述============ 前提:上传的APK中以及接入了服务器接入方提供的统一接口调用代码. 本地将游戏打包好APK后,直接上传这个APK.然后服务器端会将第三方SDK自动集成到APK中, 使上传的这个APK自动集成了第三方渠道的SDK. 一般想到的做法是将上传的APK进行反编译成工程,然后将SDK集成到工程中,再进行编译打包签名生成APK. 但是有的接入平台说拿到APK后不用进行反编译就能集成第三方SDK. 百思不得其解他们是如何做到的,到底是什么原理.(排除动

iOS- 无处不在,详解iOS集成第三方登录(SSO授权登录<无需密码>)

1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社交分享:http://www.cnblogs.com/qingche/p/3727559.html 可以和今天的一起集成使用. 2.集成前的准备工作 2.1.去ShareSDK(现为Mob)注册帐号,下载SDK,然后添加自己的应用后得到AppKey 下载地址:http://sharesdk.cn/Download 2.2.申请第三方登录的Appkey 例如: 新浪微博.腾讯微博.QQ.微信.豆瓣应用.人