2012-04-19 57 views
0

我們的網頁使用從ashx頁面動態生成的svg。這適用於IE8及更早版本,使用Adobe SVG插件。它在IE9中不起作用(包括兼容模式)。我們正在使用< object>標籤。我試圖修改該頁面以使用IE9。與IE9一起使用的動態生成的svg

我能得到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>標籤)。

+0

我沒有使用它,但我相信RaphaelJS形式的一些JavaScript幫助將使SVG在IE中工作。 – halfer 2012-04-21 09:29:29

+0

在其他瀏覽器中發生了什麼? – Yahia 2012-04-21 09:34:37

回答

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

1

檢查,如果你允許你的處理HEAD請求。 IE過去有兩個GET請求:一個用於內容類型,另一個用於對象。現在第一個請求是HEAD,所以如果動詞不被允許,第二個請求將不起作用。