以前用 SmartGWT 的 TreeGrid 没有一点问题。这次新建了一个项目之后,
其中有个地方使用了 TreeGrid, 显示的时候,用别的浏览器没问题,但是用
ie8的话,子节点就不缩进了。在SmartGWT的论坛上搜了一下,有不少人
碰到了问题,但是提出的解决方案是
<meta http-equiv="X-UA-Compatible" content="IE=7">
也就是退回到 ie7兼容模式。我使用ie7兼容模式,确实可以正常显示,但是
总感觉很奇怪。今天偶尔看
http://www.smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf
这个文档,在它Tips的最后,发现这样一条:
Develop and deploy in browser compatibility mode, not
“standards” mode.
Smart GWT components automatically detect and adapt to the browser
mode (as determined by DOCTYPE), providing consistent layout and
rendering behaviors in both standards/strict and compatibility/quirks
modes. However, the interpretation of ―standards mode‖ varies across
browsers, and changes across different versions of the same browser. If
you develop in “standards mode,” the behavior of your application may
change as users perform regular updates to their OS or browser. In
many common browsers, ―Standards mode‖ is not, as the name implies, a
consistent standards-compliant mode.
建议不要用标准模式,而用Quirks 模式。于是又找了半天这两种模式的区别,有兴趣的同学
可以去看 http://hsivonen.iki.fi/doctype/
我是直接查看了以前没问题的应用,其中doctype是怎么写的。发现新版本的eclipse gwt plugin,
自动生成的 html 里面 doctype是这样的:
<!doctype html>
而以前是的doctype是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
直接把以前的doctype替换原来的doctype,就一切ok了。
细想了一下,其实替换doctype的方法,和smartgwt论坛上提出的增加meta信息,
目的都是一样的,就是不使用标准模式,而是把它变成Quirks模式。