`
binn.zeng
  • 浏览: 10578 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

ext2.2在嵌套iframe时在ie上的js加载问题解决方式(bug?)

    博客分类:
  • ajax
阅读更多

在Ext2.2中 tab嵌套iframe用来页面分块,不过出现一个问题,如果iframe中页面是由js构造的话,ie上报错,ff上正确运行,经过排查,发现是js的执行顺序问题,Ext.onReady被过早的执行.

继续寻求答案,最后发现这应该是Ext的一个bug?

修改Ext源代中2个部分可以解决这个问题,当然不知道官方下个版本会不会把这个bug fix掉

修改代码如下:

 

var fireDocReady = function() {

	if (!docReadyState) {
		docReadyState = true;
		if (Ext.isGecko || Ext.isOpera) {
			document.removeEventListener("DOMContentLoaded", fireDocReady,
					false);
		}
	}

	if (docReadyProcId) {
		clearInterval(docReadyProcId);
		docReadyProcId = null;
	}
	if (docReadyEvent && !Ext.isReady) {
		Ext.isReady = true;
		docReadyEvent.fire();
		docReadyEvent.clearListeners();
	}

};
var initDocReady = function() {
	docReadyEvent = new Ext.util.Event();

	if (Ext.isReady) {
		return;
	}

	E.on(window, 'load', fireDocReady);

	if (Ext.isGecko || Ext.isOpera) {
		document.addEventListener('DOMContentLoaded', fireDocReady, false);
	} else if (Ext.isIE) {
		/*
		 * docReadyProcId = setInterval(function(){ try{ Ext.isReady ||
		 * (document.documentElement.doScroll('left')); }catch(e){ return; }
		 * fireDocReady(); }, 5);
		 */

		document.onreadystatechange = function() {
			if (document.readyState == 'complete') {
				document.onreadystatechange = null;
				fireDocReady();
			}
		};
	} else if (Ext.isSafari) {
		docReadyProcId = setInterval(function() {
			var rs = document.readyState;
			if (rs == 'complete') {
				fireDocReady();
			}
		}, 10);
	}
};
 
分享到:
评论
8 楼 xshlife 2009-02-28  
  幸苦了,楼主.
7 楼 xshlife 2009-02-28  
非常好,打心底里感谢楼主.
6 楼 305355024 2009-02-25  
我的还是不好使啊!郁闷啊 !
5 楼 ffychina 2008-12-24  
非常感谢楼主binn.zeng的无私奉献,帮我解决了这个大问题,谢谢...
4 楼 cagway 2008-12-01  
不会吧,我都说的那么具体了,还不行?把你的邮箱告诉我,我发给你修改后的EventManager.js
3 楼 honlin 2008-11-29  
不好使啊,按照以上二位的改动
2 楼 cagway 2008-11-17  
我也遇到了这种情况,已通过博主的方法解决
这里的改动有三处
原代码为EventManager.js
1.
  行数:第4行 源码 第102行
  改前docReadyState = Ext.isReady = true;
  改后docReadyState = true;
2.
  行数:第15行 源码 第111行
  改前:if(docReadyEvent){
  改后:if (docReadyEvent && !Ext.isReady) {
Ext.isReady = true;
3.
  行数:第34行 源码 第132行
  将34-38行注释

改完后,在ie6和firefox3.0.4试都没有问题
1 楼 chenpengyu689 2008-11-15  
我也遇到了和你一样的问题,请问这段代码要在哪里修改啊?是在ext-all.js中改吗?请你说具体点吧。。。谢谢了啊。。呵呵!

为了解决这个问题我也曾试过不用iframe改用autoload,不过那样又会遇到很多新的问题,我觉的在每个subtab里引入iframe虽然又得重新下载许多extjs,但对性能的影响似乎也没那么大,所以想用你的方法解决问题。。。

相关推荐

    Ext_2.2_API(chinese).rar_Ext 2.2 API_ext js 2_ext-2.2 api_ext2.2

    这个API文档的中文版,"Ext_2.2_API(chinese).rar_Ext 2.2 API_ext js 2_ext-2.2 api_ext2.2",是针对Ext JS 2.2框架的重要参考资料,对于开发者来说尤其有价值,特别是那些中文为母语的开发者,它使得理解框架的...

    ext2.2中文帮助文档

    综上所述,EXT2.2中文帮助文档是开发基于JavaScript的AJAX应用的关键资源,涵盖了EXT JS库、AJAX技术、JavaScript语言以及与Java后端的集成。通过深入理解和运用EXT2.2 API,开发者可以构建出强大且用户友好的Web...

    Ext2.2开发指南--完整翻写Ext官方网站学习指南介绍

    前段时间在忙于Hiberante3.2/3.3的开发指南的整理与学习,刚忙完发现我现在的学生在开发Ext2.2应用时有问题--不知道直接看开源的官方网站的介绍!唉,当然他们说英文不好懂,于是,我就看完了Ext官方网站的介绍,...

    ext2.2小示例

    【标题】"ext2.2小示例"与【描述】"自己的小示例"结合来看,这似乎是一个关于EXT JS框架的个人实践项目,其中可能包含了一个使用EXT JS 2.2版本编写的Web应用示例。EXT JS是一个流行的JavaScript库,用于构建富...

    EXT2.2主题颜色.rar )

    EXT2.2主题颜色.rar是一个压缩包文件,其核心内容是关于一个名为"EXT2.2"的软件或系统的主题颜色方案。EXT2.2可能是某个用户界面(UI)框架、编程库或者是操作系统的一个版本,它允许用户自定义界面的视觉风格。这个...

    ext2.2 oozie

    **标题与描述解析** ...这个压缩包中的"ext-2.2"可能是EXT JS库的具体实现,包含了实现上述功能所需的所有JavaScript代码和资源文件。了解并熟练使用EXT2.2对于深入理解并优化Oozie的工作流程至关重要。

    ext2.2的内存泄漏补丁

    "ext2.2的内存泄漏补丁"针对的就是这个问题,它是一个专为解决EXT2.2框架中内存泄漏问题而设计的更新。 EXT是一个流行的JavaScript库,用于构建富客户端Web应用程序。EXT2.2是这个库的一个特定版本,它提供了丰富的...

    EXT2.2开发环境

    EXT2.2是一种基于JavaScript的前端开发框架,主要用于构建富客户端Web应用。它以其强大的组件化功能、丰富的UI控件和高效...在自己练级EXT2.2环境的过程中,遇到问题不要怕,多查阅资料,参与社区讨论,你会慢慢成长。

    Ext2.2 中文手册

    - 编写 JavaScript 文件(如 `ExtStart.js`),并使用 `Ext.onReady` 方法确保 DOM 加载完毕后再执行 JavaScript 代码。 - CSS 文件(如 `ExtStart.css`)用于定义样式。 #### 2. Element:Ext 的核心 - **...

    ext2.2包(官方)

    为了解决这个问题,EXT3在EXT2的基础上增加了日志记录,从而提高了系统的可靠性。 EXT2.2这个版本可能是EXT2的一个特定修订或更新,官方不再提供下载可能是因为它已经被更先进的文件系统如EXT3、EXT4和现代的XFS、...

    基于EXT2.2的下拉复选框

    在实际使用中,开发者可能会遇到一些挑战,比如性能问题(大量数据加载时)、界面响应性(触摸设备上的交互)、以及兼容性问题(不同浏览器和版本的差异)。解决这些问题可能涉及到对EXT2.2组件的深入理解,优化数据...

    EXT2.2的帮助文档

    EXT2.2主要在Linux 2.2内核系列中使用,它为用户提供了一种可靠且高效的存储数据的方式。 EXT2.2的主要特性包括: 1. **无日志记录**:EXT2.2不支持日志记录功能,这意味着如果系统突然断电或崩溃,可能会导致文件...

    Ext2.2 中文API

    在"Ext2.2API中文文档.CHM"这个文件中,你将找到关于这些API的详细说明,包括函数原型、参数解释、返回值和可能的错误代码。这对于理解和开发与EXT2文件系统交互的应用程序非常有帮助。通过深入学习这个文档,开发者...

    Ext 2.2 帮助文档

    Ext 2.2 帮助文档 Release Notes for Ext 2.2.0 Release Date: August 4, 2008 Current Version: 2.2.0 (rev 2547) Previous Version: 2.1.0 (rev 2042)

    ext 2.2中文版

    9. **性能优化**:ExtJS 2.2版本在性能上进行了优化,比如延迟加载、组件缓存等,使得大型应用也能保持流畅的用户体验。 10. **可扩展性**:框架的模块化设计允许开发者自定义组件,或者扩展现有组件,以满足特定...

    Ext JS Library 2.2

    Ext JS Library 2.2 是一个历史悠久且功能强大的JavaScript库,专为构建富客户端Web应用程序而设计。这个版本发布于2008年,是Ext JS系列中的一个重要里程碑,为开发者提供了丰富的用户界面组件和先进的数据绑定机制...

    ext2.2-API文档-jar-doc

    EXT2.2是一个先进的JavaScript库,专为构建富互联网应用程序(RIA)而设计。这个库在EXT2.0的基础上进行了大量的扩展和优化,引入了许多新功能,极大地提升了用户体验和开发效率。EXT2.2 API文档-jar-doc包含了关于...

    localHXR.js EXT2.2 API 本地制作的JS代码

    在EXT2.2 API中,LocalHXR.js可以无缝集成到现有的EXT组件中,例如,它可以与EXT的Store配合使用,用于加载和保存本地JSON数据,无需通过Ajax请求服务器。此外,LocalHXR.js还可以与EXT的Form Panel协同工作,实现在...

    Ext 2.2 - API 中文文档

    在深入探讨Ext 2.2 API中文文档之前,我们首先需要了解Ext是什么,以及它在IT行业中的地位和作用。Ext是一套基于JavaScript的开源框架,由Sencha公司开发,主要用于构建复杂的Web应用程序。它提供了丰富的UI组件库、...

    EXT2.2自带例子,adv-vtypes.js文件中包含的daterange验证存在一个bug

    在这个特定的例子中,我们关注的是`adv-vtypes.js`文件,它包含了EXT2.2中的自定义验证类型。`daterange`验证器是EXT2.2中一个用于检查日期范围的有效性的功能,但据描述所述,该验证器存在一个bug。 `daterange`...

Global site tag (gtag.js) - Google Analytics