Internet Explorer 8 及更低版本的 SVG 支持

Posted

技术标签:

【中文标题】Internet Explorer 8 及更低版本的 SVG 支持【英文标题】:SVG support for Internet Explorer 8 and below 【发布时间】:2012-03-10 08:39:38 【问题描述】:

我在 Flash 中创建动画并使用 Swiffy 将其转换为 html5。

我认为它使用 SVG 来渲染所有内容;是否有一些 javascript 或技巧可以让 IE8 及以下版本支持它?我的动画在 Internet Explorer 9 上运行良好。

谢谢!

【问题讨论】:

关于Can't display SVG charts in Internet Explorer 8 问题的公认答案可能会对您有所帮助。简而言之,最好的办法是使用 IE8 及以下版本的 VML 功能来渲染图形。 【参考方案1】:

虽然没有完美的选择,但有几个选择:

1.) Adob​​e 有一个适用于 IE8 的 SVG 插件 http://www.iegallery.com/en/addons/detail.aspx?id=444

2.) Raphael JavaScript 框架允许矢量图形跨浏览器 - http://raphaeljs.com/

3.) 然后是开源项目:http://code.google.com/p/svg2vml/ 和 http://code.google.com/p/svgweb/

4.) IE8及以下版本可以选择显示flash。

5.) 对于 IE8 及更低版本,可以选择优雅降级并显示静态图像来代替动画。

根据您制作动画的原因 - 我会推荐 4 或 5。

【讨论】:

我会选择 raphael.js 等等。 既然 svgweb 在 Flash 中显示 SVG,为什么不建议在 4 之前呢? 他想继续更新 Flash 动画和 SVG 动画吗? 当然不是。好点子。我认为动画几乎保持不变。 啊,是的,问题中没有足够的信息可以告诉【参考方案2】:

有两个选项不会将您束缚于特定框架 (raphael) 或复杂的解决方案 (svgweb):

    Chrome 框架:如果您要获得扩展程序,请获得一个 服务器端光栅化:将 SVG 发送回服务器,inkscape 光栅化为 png,然后将其发送回去。

如果你选择第二个(是的,这是一个糟糕的选择),并且想要保留可点击的部分和工具提示,你将不得不使用不可见的 div 或 HTML 中呈现的 svg 顶部的标签。

您可以重复使用 svg 中的定位信息来定位这些 div,以避免该部分的开销。

最好的选择可能是在外交上鼓励他们使用真正的浏览器,但对于那些生活在不熟练的 IT 部门统治下的人来说,这并不总是可能的 ;)

【讨论】:

除非 #2 离线完成(提前),否则我认为它不现实;他在 SVG 中有一个动画,这意味着需要光栅化多个帧。这需要很长时间。 Chrome 框架让 IE 支持 SVG(与 Webkit 支持 SVG 的级别相同):code.google.com/intl/de/chrome/chromeframe 这是一个插件安装,可以启用画布、SVG、HTML 视频等。它取代了 IE 自己的渲染引擎.作者可以添加元标记以强制在 Chrome 框架中呈现: 是的,我认为这是我回答的一部分。 很遗憾,chromeframe 不再受支持:google.com/chromeframe/about 使用 raphaeljs 或要求您的用户更新他们的浏览器。

以上是关于Internet Explorer 8 及更低版本的 SVG 支持的主要内容,如果未能解决你的问题,请参考以下文章

使用 Internet Explorer 10 及更低版本保存 Base64 编码的 PDF

Internet Explorer <= 9 中的 AngularJS $http.post 错误

我应该怎么做才能使这个菜单栏在 Internet Explorer 7 及更高版本中正常工作?

IE8 8.0.7600 及更低版本中的无效 JSON Primitive

HTML5 track subtitles and property cue and ActiveCue 在 IE (internet explorer) 中为空

iOS BLE 蓝牙 8.1 及更低版本 BLE 订阅特征通知无响应