Firefox 中的内联 SVG

发布于 2024-10-07 04:49:09 字数 700 浏览 9 评论 0原文

我对这个有点难住了。我正在使用 Protovis(一个 JS 库)渲染 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" 

我尝试使用 但所做的只是提示 Firefox 下载它找不到的插件。

它可以在 FF4 beta 中运行,但我不明白为什么它甚至在 Firefox 3.6 中也不能运行。这是我应该放弃的事情吗?您可以在此处查看演示:

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

再次感谢!

I'm a bit stumped with this one. I'm rendering SVG visualizations using Protovis, a JS library, and it works perfectly well in Chrome as well as Firefox. I save the rendered SVG on my server and try to re-render it in a "gallery" view using a PHP function, and this fails in Firefox. All I see is the text in the SVG, but not the SVG.

I save the full svg content, like so:

<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" 

I've tried using <object> but all that does is prompt Firefox to download a plugin it can't find.

It works in FF4 beta, but I can't see why it won't work even in Firefox 3.6. Is this something I ought to give up on? You can see a demo here:

http://www.rioleo.org/protoviewer (click on "gallery")

Thanks once again!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

镜花水月 2024-10-14 04:49:09

内联 SVG 仅在两种情况下在 Firefox 中工作:

  • Firefox 有实验性的 HTML5 解析器 已启用(即您使用的是 4.0 nightly)
  • 正在解析的文档不是 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

Inline SVG only works in Firefox in two situations:

  • Firefox has the experimental HTML5 parser enabled (ie. you're using a 4.0 nightly)
  • The document being parsed is not HTML but XHTML (Content-type: application/xhtml+xml)

The object approach suggested by Rob should work, as long as the separate SVG file is coming from your server with Content-type: image/svg+xml and you use the correct syntax:

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

See Damian Cugley's article 'SVG: object or embed?' for details of some other options, or use SVGWeb.

冰雪之触 2024-10-14 04:49:09

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

<object data="yourimage.svg"></object>

Make sure you are using the correct attributes with the object element and the end tag:

<object data="yourimage.svg"></object>
彼岸花ソ最美的依靠 2024-10-14 04:49:09

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

This example may be useful for you, explanation. SVG rendering support on load time and MIME text/html is a supported feature of ItsNat Java web framework, anyway it was inspired on this JS code, the latter can be useful for you in your context (PHP).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文