项目中遇到的问题:关系图组件兼容性问题解决

1.   问题背景

在开发“客户群成员关系图”功能时,用到了关系图组件MxClient库,在开发过程中,发现该组件在IE8及IE9下有兼容性问题:不能展示图形节点的背景图及样式、不能展示关系图之间的连接线。在IE8兼容模式下、在IE6及IE7下都能正常展示,在IE8标准模式及IE9标准模式下,都不能正常展示。

2.   问题现象

不能正常展示的现象如果下图所示:

 

3.   问题原因

在排查原因的过程中,发现同样的关系图展示代码,在另外的模块(客户族群管理),能够正常展示关系图数据,由此判断关系图使用的组件库虽有兼容性问题,但此问题是可以解决的。经过多次排查和代码比较,最终发现原因是在JSP文件中,缺少“文档类型定义”引起的。y

4.   解决办法

在JSP页面文件的最前面,增加文档类型定义声明,增加这行代码:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,经验证,关系图组件库,支持文档类型定义“Strict、Transitional、Frameset”中的“Transitional、Frameset”,不支持“Strict”。增加的一行代码如下图所示:

 

5.   问题解决后的效果

 

6.   附注:文档类型定义

HTML

HTML 4.01 规定了三种文档类型:Strict、Transitional 以及 Frameset。

HTML Strict DTD

如果您需要干净的标记,免于表现层的混乱,请使用此类型。请与层叠样式表(CSS)配合使用:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">

HTML Transitional DTD

Transitional DTD 可包含 W3C 所期望移入样式表的呈现属性和元素。如果您的读者使用了不支持层叠样式表(CSS)的浏览器以至于您不得不使用 HTML 的呈现特性时,请使用此类型:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">

Frameset DTD

Frameset DTD 应当被用于带有框架的文档。除 frameset 元素取代了 body 元素之外,Frameset DTD 等同于 Transitional DTD:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "
http://www.w3.org/TR/html4/frameset.dtd">

 

posted @ 2014-09-09 13:26  积淀  阅读(562)  评论(0编辑  收藏  举报