`
roc08
  • 浏览: 224230 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Firefox 18 javascript编译器 IonMonkey 引起的extjs 布局混乱问题

阅读更多
最近测试反应系统在火狐18版本下偶尔会出现页面布局混乱的问题,出现频率还挺高,于是查了下,没有找到具体原因,不过开启firebug调试后,基本就不会出现问题了。在extjs论坛上看到已经有人发帖反应了,原因是由于18采用了最新的js编译引擎IonMonkey,他在编译extjs代码时有个bug导致的,

错误信息

引用
TypeError: callOverrideParent.caller is null
.../extjs/ext-all-dev.js Line: 37

具体原因是由于此段代码编译有问题
Ext.Base的callParent方法编译有问题,
解决方法1,覆写callParent方法,加入try catch块

if (Ext.firefoxVersion >= 18) {
    var noArgs = [];
    Ext.override(Ext.Base, {
        callParent : function(args) {


            var method, superMethod = (method = this.callParent.caller) &&
                    (method.$previous || ((method = method.$owner ?
                            method :
                            method.caller) && method.$owner.superclass[method.$name]));


            // Workarround for Firefox 18. I don't know why this works, but it does. Perhaps functions wich have 此处加入try catch后编译器将不再编译此方法
            // a try-catch block are handled differently
            try {} catch (e) {}
            return superMethod.apply(this, args || noArgs);
        }
    });
}

解决方法2:
firefox bug帖子上说18+的版本修复了这个bug,因此17号发布的18.0.1和19beta版应该都没有这个问题了,升级浏览器即可。

附加入try catch后问题解决的原因:
引用

The reason it's not reproducible is because it happens during some JIT compiling, so it's not really something we can "fix", since the symptom happens almost at random. The reason the try/catch works is because methods with try catch blocks don't get compiled.
The FF bug is here: https://bugzilla.mozilla.org/show_bug.cgi?id=818023


参考资料:
1.extjs问题帖子:http://www.sencha.com/forum/showthread.php?253345-FF-18-problem&s=4bf9757321c9fa4cb39a2ea4f7231662
2.firefox bug地址:https://bugzilla.mozilla.org/show_bug.cgi?id=818023
0
0
分享到:
评论

相关推荐

    ExtJS布局之border实例

    资源名称:ExtJS布局之border实例内容简介:border布局是常见的布局样式,本文档中一个实际项目的示例,比较简单,仅供初学者参考。感兴趣的朋友可以过来看看。自动生成行号,支持checkbox全选,动态选择显示哪些列...

    Extjs布局实例

    Extjs布局实例

    ExtJs布局教程Ext详细布局

    Extjs布局教程,Extjs 布局,非常好用的Extjs布局教程

    Extjs 布局生成器(ext布局本地版本)

    Extjs 布局生成器,可以生产各布局查看布局代码

    ExtJS布局练习例

    ExtJS布局练习例,各种布局交接,extJs布局讲解明星

    EXTJS学习,webform+mvc routeing extjs布局 适合初学者

    EXTJS学习,webform+mvc routeing extjs布局 适合初学者

    extjs布局全面讲解

    extjs布局全面讲解,此文档全面讲解了,ExtJS的布局空间的使用。

    extjs页面布局生成器

    很好的ext页面布局自动生成功能,快速布局,减少你页面开发时间!用法:解压->添加文件夹到一个web工程当中->进入index.html进入页面编辑就可以自由设计你的布局了,代码在查看/修改中可以看到,只需复制粘贴到自己...

    EXTJs江湖 JavaScript框架

    EXT江湖 ExtJs ,javascript 有兴趣的人看看吧

    ExtJs4 layout 布局

    ExtJs4 layout 布局 这是鄙人之前自学Ext时收集的文档,详细讲诉了各种布局,并附源码与界面展示,希望能给你带来帮助

    ExtJs常用布局--layout详解实例代码

    ExtJs常用布局--layout详解实例代码: ExtJs常见的布局方式有:border、form、absolute、column、accordion、table、fit、card、anchor 另外,不常见的布局有:tab、vbox、hbox 具体使用方法可见该文件的案例代码。 ...

    extjs布局管理学习指南

    extjs布局管理的学习指南,为extjs的学习打下坚实的基础。

    JavaScript框架jQuery和ExtJS的对比研究.pdf

    JavaScript框架jQuery和ExtJS的对比研究.pdf

    Extjs4.1布局与树

    纯Extjs代码,对初学Ext有点点帮助

    ExtJS Ext ExtJavascript Javascript

    ExtJS Ext ExtJavascript Javascript

    ExtJS布局之border实例中文WORD版

    资源名称:ExtJS布局之border实例 中文WORD版内容简介:border布局是常见的布局样式,本文档中一个实际项目的示例,比较简单,仅供初学者参考。感兴趣的朋友可以过来看看资源截图: 资源太大,传百度网盘了,链接在...

    Extjs4.1.1

    第八讲.EXtJS布局模式-Auto布局、Fit布局、Accordion布局 第九讲.ExtJS布局模式-Card、Anchor、Absolute 第十讲.ExtJS布局模式-Column、Table、Border 第十一讲.ExtJS布局模式-Box布局、使用ViewPort布局首页 第...

    ExtJS内存泄漏问题详解

    关于ExtJS内存泄漏问题,一直是ExtJS开发人员困扰的问题,这篇文档很好地解释了什么是内存泄漏,为什么会产生内存泄漏。能够帮助程序员使用ExtJS开发出更高效安全的代码。

    spket-1.6.18——Javascript/Ajax/ExtJS开发插件

    spket-1.6.18——Javascript/Ajax/ExtJS开发插件 这款插件主要用于为JavaScript开发的用户提供支持,方便开发人员快速进行开发。 spket-1.2以后的版本好像是收费的,本资源已破解,所以您无需为使用的期限而担忧了。

Global site tag (gtag.js) - Google Analytics