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

Ext core 3.1.0的一个大Bug

阅读更多

Ext core 3.1.0(下载地址 )中Ext.DomHelper中的applyStyles方法源码如下:

 

applyStyles : function(el, styles){
    if(styles){
        var i = 0,
            len,
            style;

        el = Ext.fly(el);
        if(Ext.isFunction(styles)){
            styles = styles.call();
        }
        if(Ext.isString(styles)){
            styles = styles.trim().split(/\s*(?::|;)\s*/);
            for(len = styles.length; i < len;){
                el.setStyle(styles[i++], styles[i++]);
            }
        }else if (Ext.isObject(styles)){
            el.setStyle(styles);
        }
    }
},

 

该方法中这句

styles = styles.trim().split(/\s*(?::|;)\s*/);


直接使用字符串类的trim方法,该方法是在ECMA-262(V5) 中给String.prototype上添加的(见15.5.4.20),用来去除字符串两旁的空白字符。

 

各浏览器的最新版本都已支持如IE9、Firefox3、Chrome8、Safari4和Opera10。
但IE6/7/8仍然不支持。导致在IE6/7/8中applyStyles失效,进而影响到Ext.Element的set方法。

测试如下:

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>Ext.DomHelper.applyStyles方法在IE6/7/8下失效</title>
		<script src="ext-core-debug.js"></script>
    </head>
    <body>

		<p id="p1">HELLO</p>
			
		<script type="text/javascript">		
			var dh = Ext.DomHelper;
			var p1 = document.getElementById('p1');
			try{
				dh.applyStyles(p1,'color:red');
			}catch(e){
				alert(e);
			}	
				
		</script>
    </body>
</html>

 

这个页面引入了ext-core-debug.js,使用Ext.DomHelper对象的applyStyles方法来设置元素样式。

 

在IE6/7/8中有异常,段落颜色未变。其它浏览器段落p的颜色变成了红色。

 

这是一个大Bug!

 

 

 

8
5
分享到:
评论
3 楼 linder0209 2011-03-31  
首先肯定这位仁兄对extjs源码的研究,不过你指出的bug应该不是extjs的bug,extjs已经扩展了trim方法,如下

String.prototype.trim = function(){
    var re = /^\s+|\s+$/g;
    return function(){ return this.replace(re, ""); };
}();

2 楼 nowaytj 2011-01-29  
国内的使用群相当落后,但某些开发人员相当激进,这是个矛盾。
比如:一部分开发人员追求软件的新版本,却考虑它的兼容和维护以及带来的新bug

开发学习,和商业应用还是有差别的
1 楼 kyfxbl 2011-01-26  
太超前了一点,没有考虑到国内浏览器状况

相关推荐

    Ext-Core 3.1.0 简体中文手册

    Ext-Core 3.1.0 简体中文手册Ext-Core 3.1.0 简体中文手册Ext-Core 3.1.0 简体中文手册Ext-Core 3.1.0 简体中文手册Ext-Core 3.1.0 简体中文手册

    ext-air-3.1.0和ext-core-3.1.0

    标题中的"ext-air-3.1.0"和"ext-core-3.1.0"分别代表了两个JavaScript库,这是Ext JS框架的两个不同版本。Ext JS是一个强大的客户端JavaScript库,用于构建富互联网应用程序(RIA)。让我们深入探讨这两个组件。 1....

    ext-3.1.0和API

    ext-3.1.0.zip+中文API+中文入门文档

    ext3.4 ext3.1.0以及ext3.0API

    3. **快速重命名**:EXT3允许在同一个目录下对文件进行原子性的重命名操作,即使在多任务环境下也能保证操作的完整性。 4. **大文件支持**:EXT3支持最大16TB的文件系统和2TB的单个文件,满足了大容量存储需求。 5...

    Castle.Core.3.1.0.zip

    总结,Castle.Core 3.1.0是一个强大且灵活的.NET开发框架,它的动态代理和依赖注入功能极大地提升了代码的可维护性和可扩展性。对于任何想要利用AOP和DI来优化其.NET应用程序的开发者来说,这是一个不可忽视的工具。...

    htrace-core-3.1.0-incubating-API文档-中英对照版.zip

    赠送jar包:htrace-core-3.1.0-incubating.jar; 赠送原API文档:htrace-core-3.1.0-incubating-javadoc.jar; 赠送源代码:htrace-core-3.1.0-incubating-sources.jar; 包含翻译后的API文档:htrace-core-3.1.0...

    sharding-jdbc 3.1.0 不分片表,分页bug,第二页查出的数据会显示前面的数据

    sharding-jdbc 3.1.0 不分片表,分页bug,第二页查出的数据会显示前面的数据 https://github.com/apache/incubator-shardingsphere/issues/1722 sharding-core-3.1.0.jar

    htrace-core-3.1.0-incubating-API文档-中文版.zip

    赠送jar包:htrace-core-3.1.0-incubating.jar; 赠送原API文档:htrace-core-3.1.0-incubating-javadoc.jar; 赠送源代码:htrace-core-3.1.0-incubating-sources.jar; 赠送Maven依赖信息文件:htrace-core-3.1.0-...

    htrace-core-3.1.0-incubating

    htrace-core-3.1.0-incubating搭建flume1.7所用包,还有几个提供

    mockito-core-3.1.0-API文档-中文版.zip

    赠送jar包:mockito-core-3.1.0.jar; 赠送原API文档:mockito-core-3.1.0-javadoc.jar; 赠送源代码:mockito-core-3.1.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-3.1.0.pom; 包含翻译后的API文档:...

    ext-core-3.1.0语法加亮版适合打印

    ext-core-3.1.0语法加亮html文件 版适合打印出来,在上下班的途中学习

    mockito-core-3.1.0.jar

    mockito-core-3.1.0

    EXT 3.1.0 API

    EXT 3.1.0 API 官方文档 需要放到 tomcat 之类的服务器下运行

    mockito-core-3.1.0-API文档-中英对照版.zip

    赠送jar包:mockito-core-3.1.0.jar; 赠送原API文档:mockito-core-3.1.0-javadoc.jar; 赠送源代码:mockito-core-3.1.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-3.1.0.pom; 包含翻译后的API文档:...

    maven-confluence-core-3.1.0.jar

    maven-confluence-core-3.1.0.jar

    spark-core3.1.0基础

    ### Spark-Core 3.1.0 基础知识点详解 #### 一、Spark 概述 ##### 1.1 Spark 发展历程 Spark 作为一款高性能的数据处理框架,其...无论是进行大数据分析还是构建复杂的分布式系统,Spark都是一个值得信赖的选择。

    Extjs3.1.0

    标题提到的"Extjs3.1.0"是该框架的一个特定版本,发布于2009年,具有许多改进和新功能。 在描述中,我们了解到这是ExtJS 3.1.0的最新官方完整版,包含全部源代码和相关资源。此外,还提供了中文文档,这对于中文...

    spring-core-3.1.0.RELEASE.jar

    spring-core-3.1.0.RELEASE.jar

    ExtJS3.1.0

    ExtJS 3.1.0 是一个基于JavaScript的开源框架,专为构建功能丰富的、交互性强的Web应用程序界面而设计。这个版本是ExtJS框架的一个重要里程碑,它提供了许多先进的功能和改进,使开发者能够更加高效地构建RIA(Rich ...

Global site tag (gtag.js) - Google Analytics