`
- 浏览:
60918 次
-
今天花费了很多时间处理上星期完成的ExtJs 3+java程序中存在的浏览器差异性问题。
首先是JSON.parse问题。 FF有这个对象, 但IE中没有。以eval()方法代替。
然后是字体大小问题,若不做任何CSS上的修改,火狐字体显示大小刚好, 但chrome和IE的字很小。在百度上找到的方法是修改extjs-all.css文件:把所有的11px替换成12px,因为11px是一个边缘尺寸, 两个浏览器显示的大小有差异。问题解决。
还有grid的行高。方法也是在百度上找的:添加并引用css:
.x-grid3-row td,.x-grid3-summary-row td{
line-height:23px;//控制GRID单元格高度
vertical-align:center;//单元格垂直居中
border-right: 1px solid #eceff6 !important;//控制表格列线
border-top: 1px solid #eceff6 !important;//控制表格行线
}
问题解决。
(这个大小问题, 无论是字体还是行高, 绝对是受浏览器缩放程度影响的, 但一开始我没考虑到这方面。 所以一直看ie不爽, 非常地不爽,因为它把字体显示的太小了。
现在回想一下, 还是自己的不是:有可能不是ie显示的太小了, 而是我的火狐放缩的太大了。于是我想看看我的火狐的页面放缩大小是否为100%, 但很无奈地没有找到查看或者设置的地方。Ctrl+滚动可以放大缩小, 但不能准确地定位在100%。)
最后一个是date的显示问题。服务器端传过来的对象类型是Java.sql.TimeStamp(java.util.Date的一个包装类)。在js代码columnModel的header定义里我使用了renderer:Ext.util.Format;.dateRenderer("Y-m-d")。这样做的结果是在ff和chrome中可以正常显示, 但在ie中为空白。有两个方向的解决办法:一:在js自定义函数解析;二,在服务器端解析成字符串。js在浏览器上的差异让我不是很喜欢js, 所以我选择了第二种方法:在java代码中使用new SimpleDateFormat ("yyyy-mm-dd"). format(date)将date解析成字符串。
最后再感叹一句, 如果天下间的浏览器只遵守一个标准就好了!这种多元化现状真是坑爹啊!
分享到:
Global site tag (gtag.js) - Google Analytics
评论