我从未见过像这样的浏览器错误。它只发生在特定的Safari浏览器/平台组合上。我在iOS4或Mac OSX Snow Leopard上获得Safari 5.1.1的预期结果,但只有在Lion或iOS5上尝试Safari 5.1或5.1.1时才会出现错误。
当我通过foreignObject元素将canvas元素嵌入到内联svg doc中时,会出现这种情况。画布通常尊重应用于foreignObject的所有svg变换,这在Chrome / Firefox和Safari(iOS4,Snow Leopard)上运行良好。但是当我在Lion上使用Safari时,iOS5的画布渲染时没有应用任何变换。画布渲染也位于所有SVG的顶部,因此也不会遵守z顺序。
在平台(Snow Leopard / Lion)之间的相同版本(5.1 / 5.1.1)中Safari可能有什么变化?
任何帮助都可以找到解决方法。
编辑:看起来渲染引擎在Lion和iOS5中从Webkit1更改为Webkit2,并引入了大量的错误。这个看起来像是相关的:https://bugs.webkit.org/show_bug.cgi?id=68635仍在寻找解决方法......
答案 0 :(得分:1)
取决于你如何在html中链接你的svg。 如果它是外部svg文件,你应该像这样嵌入它并将其作为“image / svg + xml”提供
<embed id="some_id" width="WIDTH" height="HEIGHT" src="youranimation.svg" name="animated_map" type="image/svg+xml">
如果你将它插入内联,我知道一些变换和动画不起作用,目前还不知道任何解决方法。我建议将其描述为外部链接。