【问题标题】:SVG not displaying in IE9SVG 不显示在 IE9 中
【发布时间】:2014-05-22 23:59:21
【问题描述】:

我有一个用 HTML 编写的文档,需要分发并从本地硬盘驱动器读取。 HTML 包含引用本地硬盘驱动器上 SVG 的 img 标签。这在 Firefox 中工作正常,但在 IE 9 中根本不起作用,只是图形应该在的空白处。 IE 的版本不在我的控制范围内,所以我必须使用它。如果我切换到不同的图形类型,比如 PNG,它可以正常工作。如果我在 SVG 中嵌入 PNG 图像数据,它也会显示出来。但如果它只是一个 SVG,什么都没有。我用一些更简单的 HTML 和 SVG 重新创建了这个问题:

<!DOCTYPE html>
<html>
    <head>
        <title>Purpose: Test SVG Rendering in IE9</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=9">
        <!--meta charset="UTF-8"-->
        <meta name="viewport" content="width=device-width">
    </head>
    <body>
        <h1>Testing SVGs 5</h1>
        <p>SVG should render below:</p>
        <img src="sample.svg" alt="Sample SVG">
        <p>SVG should have rendered above. Works PNG below:</p>
        <img src="works-icon.png" alt="Sample PNG">
    </body>
</html>

还有 SVG:

<svg width="300" height="300" viewBox="0 0 300 300">
   <path d="M150 0 L75 200 L225 200 Z" />
</svg> 

我已经阅读了尽可能多的类似问题,但到目前为止还没有解决这个问题。

其他有用的信息可能是 IE 正在浏览器模式 IE9 和 IE9 标准的文档模式下运行。操作系统是 Windows 7。

任何建议将不胜感激。

提前致谢。

【问题讨论】:

  • 直接内联svg是否有效? IE。用 svg 块替换 img 标签?
  • 确实有效。不幸的是,我通过在 标记中添加 SVG 的 W3C 命名空间 URL 解决了上述问题。我说很不幸,因为这仍然解决了我原来的问题,这个问题很难发布。我可能不得不考虑如何重新表述我原来的问题。
  • 感谢 OldGeeksGuide 的回复。

标签: html internet-explorer svg


【解决方案1】:

我的问题最终变成了 2 倍。我的 SVG 需要这样的命名空间信息:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg 
   width="300" 
   height="300" 
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   viewBox="0 0 300 300">
   <path d="M150 0 L75 200 L225 200 Z" />
</svg>

另一个问题来自于导致问题的原始文档使用&lt;object&gt; 标签而不是&lt;img&gt; 标签(所以我的原始帖子不是完整问题的准确表示)。 IE9 显然允许您通过 &lt;object&gt; 标签将其他格式的图形添加到 HTML 文档中,但 SVG 不允许。

【讨论】:

  • 感谢您的编辑。我还在学习使用这个网站的一些细节。
猜你喜欢
  • 2011-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
  • 1970-01-01
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多