SVG没有在IE9中显示

时间:2014-04-09 16:19:27

标签: html internet-explorer svg

我有一个用HTML编写的文档,需要从本地硬盘驱动器中分发和读取。 HTML包含引用本地硬盘驱动器上的SVG的img标记。这在Firefox中运行良好,但在IE 9中根本不起作用,只是图形应该是的空白区域。 IE的版本不受我的控制,因此我必须使用它。如果我切换到不同的图形类型,比如PNG,它可以正常工作。如果我将PNG图像数据嵌入SVG中,它也会显示出来。但如果它只是一个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。

我们非常感谢任何建议。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我的问题最终变成了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>

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