Ext core 3.1.0の大きなBug
2214 ワード
Ext core 3.1.0(ダウンロード)のExt.DomHelperの中のappyStyleの方法のソースコードは以下の通りです.
この方法では、このstyle=stylis.trim().split(/\s*(?::::)\s*);文字列クラスのtrim方法を直接使用して、この方法はECMA-622(V 5)にString.prototypeに追加された(15.5.4.20参照).文字列の両側の空白文字を除去するために用いられる.
各ブラウザの最新バージョンは、IE 9、Firefox 3、Chrome 8、Safari 4、およびOpera 10のようにサポートされています.しかし、IE 6/7/8は依然としてサポートされていません.IE 6/7/8においてappyStyleが失効し、さらにExt.Elementのset方法に影響を与えます.テストは以下の通りです
このページはext-coree-debug.jsを導入しています.Ext.DomHelperオブジェクトのappyStyleメソッドを使って要素スタイルを設定します.
IE 6/7/8に異常があり、段落の色は変わりません.他のブラウザの段落pの色は赤色になりました.
これは大きいBugです.
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);
}
}
},
この方法では、このstyle=stylis.trim().split(/\s*(?::::)\s*);文字列クラスのtrim方法を直接使用して、この方法はECMA-622(V 5)にString.prototypeに追加された(15.5.4.20参照).文字列の両側の空白文字を除去するために用いられる.
各ブラウザの最新バージョンは、IE 9、Firefox 3、Chrome 8、Safari 4、およびOpera 10のようにサポートされています.しかし、IE 6/7/8は依然としてサポートされていません.IE 6/7/8においてappyStyleが失効し、さらに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-coree-debug.jsを導入しています.Ext.DomHelperオブジェクトのappyStyleメソッドを使って要素スタイルを設定します.
IE 6/7/8に異常があり、段落の色は変わりません.他のブラウザの段落pの色は赤色になりました.
これは大きいBugです.