`

Ext 2-iframe bug

    博客分类:
  • Ext
阅读更多
在Ext2.0 Beta1中 在嵌套iframe时出现Ext.getBody() 返回undefined现象,经过排查,发现是js的执行顺序问题,Ext.onReady被过早的执行。继续寻求答案,最后发现这应该是Ext的一个bug。

解决方法:

修改EventManager.js
主要分为两个代码片段:

第一个代码片段修改前
var fireDocReady = function(){
        if(!docReadyState){
            docReadyState = true;
            Ext.isReady = true;
            if(docReadyProcId){
                clearInterval(docReadyProcId);
            }
            if(Ext.isGecko || Ext.isOpera) {
                document.removeEventListener("DOMContentLoaded", fireDocReady, false);
            }
            if(Ext.isIE){
                var defer = document.getElementById("ie-deferred-loader");
                if(defer){
                    defer.onreadystatechange = null;
                    defer.parentNode.removeChild(defer);
                }
            }
            if(docReadyEvent){
                docReadyEvent.fire();
                docReadyEvent.clearListeners();
            }
        }
    };


第一个代码片段修改后
var fireDocReady = function(){
        if(!docReadyState){
            docReadyState = true;
            //Ext.isReady = true;            
            if(docReadyProcId){
                clearInterval(docReadyProcId);
                docReadyProcId = null;
            }
            if(Ext.isGecko || Ext.isOpera) {
                document.removeEventListener("DOMContentLoaded", fireDocReady, false);
            }
            if(Ext.isIE){
                var defer = document.getElementById("ie-deferred-loader");
                if(defer){
                    defer.onreadystatechange = null;
                    defer.parentNode.removeChild(defer);
                }
            }
            if(docReadyEvent && !Ext.isReady){
                Ext.isReady = true;
                docReadyEvent.fire();
                docReadyEvent.clearListeners();
            }
        }
    };


第二个代码片段修改前
/**
         * Fires when the document is ready (before onload and before images are loaded). Can be
         * accessed shorthanded as Ext.onReady().
         * @param {Function} fn The method the event invokes
         * @param {Object} scope (optional) An object that becomes the scope of the handler
         * @param {boolean} options (optional) An object containing standard {@link #addListener} options
         */
        onDocumentReady : function(fn, scope, options){
            if(docReadyState){ // if it already fired
                docReadyEvent.addListener(fn, scope, options);
                docReadyEvent.fire();
                docReadyEvent.clearListeners();
                return;
            }
            if(!docReadyEvent){
                initDocReady();
            }
            docReadyEvent.addListener(fn, scope, options);
        },

第二个代码片段修改后
/**
         * Fires when the document is ready (before onload and before images are loaded). Can be
         * accessed shorthanded as Ext.onReady().
         * @param {Function} fn The method the event invokes
         * @param {Object} scope (optional) An object that becomes the scope of the handler
         * @param {boolean} options (optional) An object containing standard {@link #addListener} options
         */
        onDocumentReady : function(fn, scope, options){
            if(docReadyState){ // if it already fired
                docReadyEvent.addListener(fn, scope, options);
                docReadyEvent.fire();
                docReadyEvent.clearListeners();
                return;
            }
            if(!docReadyEvent){
                initDocReady();
            }
            options = options || {};
            if(!options.delay){
                options.delay = 1;
            }
            docReadyEvent.addListener(fn, scope, options);
        },


修改之后,问题解决。
IE版本:IE8
Ext版本:Ext2.0 Beta1

官方原文地址:http://www.sencha.com/forum/showthread.php?43246-2.2-FIXED-Ext.onReady-and-onLoad
1
0
分享到:
评论

相关推荐

    ext4-exactor.zip

    2. **元数据提取**:提取EXT4文件系统中的元数据,如文件权限、时间戳、硬链接等,这对于理解文件系统状态至关重要。 3. **文件恢复**:可能用于数据恢复场景,从损坏或丢失的EXT4分区中提取可恢复的文件。 4. **...

    ext-2.0 ext-2.0 ext-2.0 ext-2.0 ext-2.0

    ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0

    Ext入门-详细教程

    Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-...

    openwrt-23.05.2-x86-64-generic-ext4-combined-efi.img.gz

    openwrt软路由

    fuse-ext2-0.0.7

    【标题】"fuse-ext2-0.0.7" 是一个专用于Linux系统的开源软件,其主要功能是允许用户在Linux环境下挂载并操作EXT2文件系统。EXT2(Second Extended File System)是Linux早期广泛使用的文件系统之一,主要用于存储和...

    spketdwcs-ext-2.1.mxp

    spketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-...

    前端开源库-style-ext-html-webpack-plugin

    其中,“style-ext-html-webpack-plugin”是一个特别值得关注的插件,它专门针对HTML文件的内联样式进行了优化,以提高页面加载速度和用户体验。 **一、插件概述** “style-ext-html-webpack-plugin”是针对...

    ext-ms-win-gdi-desktop-l1-1-0.dll

    ext-ms-win-gdi-desktop-l1-1-0.dll 用于解决这个dll文件丢失问题,下载后将此文件放置在相关文件根目录下,即可解决丢失问题

    ext使用--Panel和iframe联合使用时页面高度的解决方法

    var iframe = Ext.create('Ext.ux.IFrame', { src: 'http://example.com', listeners: { load: function() { var iframeBody = this.getDoc().body; var iframeHeight = iframeBody.offsetHeight + 'px'; ...

    openwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.zip

    适用于树莓派4B的openwrt镜像

    ext4-util源代码——制作make_ext4fs和simg2img工具

    本文将深入探讨如何使用`ext4-utils`工具集来创建`make_ext4fs`和`simg2img`这两个关键工具,这对于理解Android系统底层工作原理以及进行相关开发和调试非常有帮助。 `make_ext4fs`是一个用于创建ext4文件系统的...

    ext-lang-en.js和ext-lang-zh_CN.js

    Extjs中实现国际化要用到的文件ext-lang-zh_CN.js和ext-lang-en.js

    ExtDesigner-1.2.2 破解版及说明下载

    在网上找了几种ExtDesigner的破解方法,最后发现还是这种不错,特意上传上来备用及方便大家使用,该破解适用于ExtDesigner-1.2.0,及ExtDesigner-1.2.2-48.exe,均测试通过,下载包里含破解说明, ExtDesigner-1.2.2-...

    Ext js-4.1.1+Ext js-4.1.0+Ext4.1.0API中文版

    Ext js-4.1.1+Ext js-4.1.0+Ext4.1.0API中文版 .

    树莓派PI B3+官方镜像openwrt-19.07.5-brcm2708-bcm2710-rpi-3-ext4-factory.img

    openwrt-19.07.5-brcm2708-bcm2710-rpi-3-ext4-factory.img 树莓派PI B3+官方镜像

    ext-bug-fix-guig

    当我们谈论"ext-bug-fix-guig"时,我们实际上是在讨论针对ext2.2文件系统的错误修复工作,特别是针对内存泄露问题的解决方案。ext2.2是Linux操作系统中的一个经典文件系统,它为数据存储提供了基础架构。内存泄露是...

    ext-3.3.1 ext-3.3.1

    ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1

    openwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz

    树莓派4B固件,只编译了树莓派4B版本,注意是树莓派4B

    ext-js-4.2

    ext-js-4.2框架ext-js-4.2框架ext-js-4.2框架ext-js-4.2框架

    ext scheduler -java

    【标题】:“EXT Scheduler - Java”是一个基于EXTJS 6.5版本的资源调度和管理工具,它结合了Spring MVC 3.1框架在后端提供了数据处理支持。EXT Scheduler作为一个强大的前端组件,用于创建直观的甘特图,帮助企业或...

Global site tag (gtag.js) - Google Analytics