Internet Explorer 8及以下版本的SVG支持

51

我使用Flash创建了动画,并使用Swiffy将其转换为HTML5。

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

谢谢!


1
这个在问题无法在Internet Explorer 8中显示SVG图表上被接受的答案可能会对你有所帮助。简而言之,你最好使用IE8及以下版本的VML功能来渲染图形。 - Drew Gaynor
2个回答

65

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

1.) Adobe针对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。


6
在众多选项中,我会选择使用 Raphael.js。 - Joseph
当然不是。好观点。我假设动画基本上保持不变。 - Todd Moses
啊,是的,问题中没有足够的信息可以说明。 - robertc
使用多种技术叠加在一起并不理想。如果它是用Flash创建的,那么最简单且不太可能在边缘情况下出现问题的解决方案是,如果没有SVG,则使用原始源Flash作为备选项。 - mike nelson
Adobe于2009年1月1日停止支持Adobe SVG Viewer。请访问http://www.adobe.com/devnet/svg/adobe-svg-viewer-download-area.html了解更多信息。 - Ricardo
显示剩余2条评论

1

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

  1. Chrome Frame:如果您要获取扩展程序,请获取该扩展程序
  2. 服务器端光栅化:将SVG发送回服务器,inkscape将其光栅化为PNG,然后将其发送回来。

如果您选择第二个选项(是的,这是一个糟糕的选项),并且想要保留可点击部分和工具提示,则必须使用不可见的div或在呈现的SVG之上的HTML标签。

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

最好的选择可能是外交地鼓励他们使用真正的浏览器,但对于那些生活在技术水平低下的IT部门的人来说,这并不总是可能的;)


除非第二步事先离线完成,否则我认为这不现实。他的SVG动画意味着需要栅格化多个帧,这将需要很长时间。 - T.W.R. Cole
Chrome Frame可以使IE支持SVG(与Webkit支持SVG的水平相同):http://code.google.com/intl/de/chrome/chromeframe/这是一个插件安装程序,可以启用canvas、SVG、HTML视频等功能。它替换了IE自己的渲染引擎。作者可以添加一个元标记来强制在Chrome Frame中进行渲染:<meta http-equiv="X-UA-Compatible" content="chrome=1"> - David Karlsson
是的,我认为这是我的答案的一部分。 - Morg.
很遗憾,chromeframe不再受支持:https://www.google.com/chromeframe/about/ 请使用raphaeljs或者要求用户更新其浏览器。 - lepe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接