6

我对这个有点难过。我正在使用 JS 库 Protovis 渲染 SVG 可视化,它在 Chrome 和 Firefox 中运行良好。我将渲染的 SVG 保存在我的服务器上,并尝试使用 PHP 函数在“图库”视图中重新渲染它,但这在 Firefox 中失败了。我看到的只是 SVG 中的文本,而不是 SVG。

我保存完整的 svg 内容,如下所示:

<svg height="220" width="880" stroke-width="1.5" stroke="none" fill="none" font-family="sans-serif" font-size="10px"><g transform="translate(30, 10)"><line stroke-width="1" 

我试过使用<object>,但所做的只是提示 Firefox 下载它找不到的插件。

它适用于 FF4 beta,但我不明白为什么它在 Firefox 3.6 中也不起作用。这是我应该放弃的东西吗?你可以在这里看到一个演示:

http://www.rioleo.org/protoviewer(点击“画廊”)

再次感谢!

4

3 回答 3

4

内联 SVG 仅在两种情况下在 Firefox 中有效:

  • Firefox 启用了实验性HTML5 解析器(即,您每晚使用 4.0)
  • 被解析的文档不是 HTML 而是XHTML ( Content-type: application/xhtml+xml)

object只要单独的 SVG 文件来自您的服务器Content-type: image/svg+xml并且您使用正确的语法,Rob 建议的方法应该可以工作:

<object data="foo.svg" type="image/svg+xml" width="400" height="300">

请参阅Damian Cugley 的文章“SVG:对象还是嵌入?” 有关其他选项的详细信息,或使用SVGWeb

于 2010-12-14T15:16:52.140 回答
0

确保您使用正确的属性与对象元素和结束标记:

<object data="yourimage.svg"></object>
于 2010-12-12T05:09:20.590 回答
0

这个例子可能对你有用,解释。加载时间和 MIME 文本/html 的 SVG 渲染支持是ItsNat Java Web 框架的支持功能,无论如何它是受此JS 代码启发的,后者在您的上下文 (PHP) 中可能对您有用。

于 2011-01-07T08:30:46.423 回答