我们的网页使用来自ashx页面的动态生成的svg。这适用于IE8及更早版本的Adobe 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中正确呈现。
在IE9中使动态生成的svg工作需要做些什么?我没有附加到<embed>
标记,但是对于其他方法(例如<object>
标记)没有任何运气。
答案 0 :(得分:1)
检查您是否允许处理程序的HEAD请求。 IE曾经有两个GET请求:一个用于内容类型,另一个用于对象。现在第一个请求是HEAD,因此如果不允许动词,则第二个请求将不起作用。
答案 1 :(得分:0)
答案 2 :(得分: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写入Rewrite您真实网址的网址。
在您的情况下,真实网址为http://oursite.com/ourhandler.ashx?t=Circle&v=1&Ext=.svg