導致不能工作的問題很多,其中有一個主要問題是,1.1里面大量用了document.all去操縱控件的值。
頁面控件是用的struts標簽做的,只指定的property,沒有指定styleId。
研究的時候發(fā)現(xiàn),在Aptana? Version: 0.2.7.13425里面,提示document.all是個ie only的方法。
查閱資料,都說document.all是個ie only的方法,是IE4加入的。ok,讓我來測一把。
經(jīng)過實際瀏覽器測試:
IE5、6、7 | Firefox 2.0.0.5 | Netscape 8.1.3 | Opera 9.23 | Win safari 3.0.3 | Osx safari 1.3.2 | Mac ie 5.2 | |
document.all | Y | Y | Y | Y | Y | N | N |
document. getElementById | Y | Y | Y | Y | Y | Y | Y |
從上面的結(jié)果來看,我們可以得出幾個結(jié)論。
1.不是是IE就支持document.all。mac 下的ie 5.2就不支持。
2.不是只有IE才支持document.all
3.頁面控件一定要加id。
4.操縱控件最好用document.getElementById
另外對于struts標簽生成的控件,可以通過增加屬性styleId=''的方式,使生成的控件帶有id屬性。
好了,問題定位了,下面就是要干活了,幾乎所有的jsp都要改。。。。。。。。
體力活啊。- -#
對了。據(jù)說下個版本要支持
Opera Mini
Blackberry Browser IE5、6、7 Firefox 2.0.0.6 Netscape 8.1.3 Opera 9.23 Win safari 3.0.3 Osx safari 1.3.2 Mac ie 5.2 Y 僅第一alert正常 僅第一alert正常 Y 僅第一alert正常 N Y
估計到時候問題會更多。
5樓的代碼測試結(jié)果
<div id="deepTest">
<input type="text" name="name" value="kk">
<input type="text" name="age" value="xx">
</div>
<script type="text/javascript">
var dDeepTest = document.all.deepTest;
alert(dDeepTest.innerHTML);
var ipts = dDeepTest.all.tags("input");
alert(ipts.length);
</script>