在ie9中使用embed标签显示svg

时间:2011-04-02 22:27:23

标签: svg internet-explorer-9

大家好,我只是想知道是否有人使用embed标签在ie9中显示svg的经验。以下是我的代码示例:

<!DOCTYPE html>
<html><head><title>Example</title></head>
<body>
<embed id="E" height="50%" width="100%" src="example.svg">
</body>
</html>

现在这在Firefox中显示得很好,即带有Adobe插件的8,但是在9中它只是弹出一个空白框,在框的左上角有一个图像图标。有没有人有任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

虽然您的代码段包含HTML5 DocType定义,但还有其他因素会影响IE9处理HTML的方式,例如 HTTP响应标头(请参阅How Internet Explorer Chooses Between Document Modes

我认为如果你强制IE9进入标准模式,你的SVG将由IE9呈现;要快速测试,只需使用Developer Tools来控制浏览器和文档模式。

所以,如果您的嵌入式SVG现在显示您只是想知道是什么触发IE9选择错误的文档模式。

答案 1 :(得分:1)

我不确定您的问题是否意味着您试图找出在IE9中显示SVG的任何方式,或者仅使用<embed>标记。如果您只想在IE9中显示SVG,我建议您直接在XHTML5中嵌入SVG:

<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head> 
  <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
  <title>untitled</title>
  <style type="text/css" media="screen">
    body { background:#eee; margin:1em }
    svg  { background:#fff; display:block; border:1px solid #ccc; width:100%; margin:1em -1px }
  </style>
</head><body>
<svg viewBox="-500 -500 1000 1000" xmlns="http://www.w3.org/2000/svg"  xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="full">
  <!-- SVG content here -->
</svg>
<script type="text/javascript"><![CDATA[
  var svg   = document.getElementsByTagName('svg')[0];
  var svgNS = svg.getAttribute('xmlns');
  // Access/manipulate your SVG here
]]></script>
</body></html>

如果你想测试这种技术,下面是一些使用在IE9中工作的SVG的示例(在我的网站上):

如果这不是您想要的,请说明您的需求。