0

我们的网页使用从 ashx 页面动态生成的 svg。这适用于 IE8 及更早版本,使用 Adob​​e SVG 插件。它在 IE9 中不起作用(包括兼容模式)。我们正在使用 <object> 标签。我正在尝试修改页面以使用 IE9。

我能够使用我在网上找到的一个简单的测试 svg 来渲染 SVG:

<embed src="http://oursite.com/circle1.svg" type="image/svg+xml"
    height="200" width="550"/>

但是,如果我将其更改为:

<embed src="http://oursite.com/ourhandler.ashx?t=Circle&v=1&ext=.svg"
    type="image/svg+xml" height="200" width="550"/>

我得到一个带有禁用垂直滚动条的空白框。

的输出"ourhandler.ashx?t=Circle&v=1&ext=.svg"内容与“circle1.svg”相同,浏览到http://oursite.com/Ourhandler.ashx?t=Circle&v=1&ext=.svg直接在 IE9 中正确呈现。

我需要做什么才能使动态生成的 svg 在 IE9 中工作?我没有附加到<embed>标签,但没有任何其他方法(如<object>标签)的运气。

4

3 回答 3

1

检查您是否允许处理程序的 HEAD 请求。IE 曾经有两个 GET 请求:一个用于内容类型,一个用于对象。现在第一个请求是 HEAD,所以如果动词不被允许,第二个请求将不起作用。

于 2013-07-31T20:01:10.883 回答
0

我也有同样的问题。

我使用Fiddler跟踪问题,然后我发现该元素没有向“scr”属性指定的 URL 发布请求。但是当“src”的 ext 以“.svg”开头时它确实请求。

最后我找到了解决方案。

步骤1

我将 src 更改为类似(使用“.svgx”ext)

<embed src="http://oursite.com/ourhandler.svgx?t=Circle&v=1"
type="image/svg+xml" height="200" width="550"/>

第2步

编写一个 HttpModule将 URL重写为您的真实 URL。

在您的情况下,真正的 URL 是http://oursite.com/ourhandler.ashx?t=Circle&v=1&Ext=.svg

于 2012-05-25T06:21:00.317 回答
0

适用于所有浏览器:

http://jsfiddle.net/mihaifm/n8DWe/3/

也许这是您如何封装嵌入的问题。

于 2012-04-21T14:10:02.900 回答