使用svg来绘制图形确实很方便,就是生成xml文件,在其中用text指定生成文本,circle生成圆,用line生成直线等等。
可是这个标准却不被IE很好的支持。在IE6中,需要装一个Adobe的svgviewer浏览器插件,才能浏览。
这次客户端都升级到了ie7,ie8,却发现原来能正常浏览的svg图,在屏幕上缩成了小小的一块。
实在是没办法,只好考虑使用silverlight来替代了。
下面是关于svg的一个报道
互联网之父称IE处理SVG时落后对手
有“互联网之父”之称的蒂姆·伯纳斯-李(Tim Berners-Lee)表示,通常情况下他不会表达对某种浏览器的“偏爱”,但他发现微软的IE浏览器确实存在一个问题.
伯纳斯-李本周接受采访时表示,IE在处理一种重要的图像格式方面IE落后于其它浏览器.矢量图形(SVG)格式的图像能够随意放大或缩小而不会失真,地图通常采用SVG格式.
伯纳斯-李说,稍加注意就会发现,大多数浏览器都支持SVG图像格式,但IE在这方面做得不够好.Firefox、Safari和其它浏览器对SVG 提供了内置支持,IE则依赖Adobe Systems的一款插件支持SVG.用户必须下载、安装这款插件才能够在IE中显示SVG格式图像,即使是最近发布的IE 8β2也是如此.
微软在一份声明中表示,“我们一直在考虑支持SVG,我们意识到Web开发人员需要SVG.”
在IE中提供对SVG的内置支持对于微软而言已经刻不容缓,因为从明年1月1日起Adobe将不再支持SVG插件.目前尚不清楚届时用户是否还能够继续下载这款SVG插件.
下面是一个可以正确显示的例子
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head></head>
<title>合作关系图可视化展示</title>
<body>
<iframe id="frame" src="http://124.16.136.158:8080/myapp/Parse_Draw.jsp?author=冯登国 " width="100%" frameborder="0" marginheight="0" marginwidth="0"></iframe>
<script type="text/javascript">
function resizeIframe() {
var height = document.documentElement.clientHeight;
height -= document.getElementById('frame').offsetTop;
// not sure how to get this dynamically
height -= 20; /* whatever you set your body bottom margin/padding to be */
document.getElementById('frame').style.height = height +"px";
};
document.getElementById('frame').onload = resizeIframe;
window.onresize = resizeIframe;
</script>
</body>
</html>