2011-12-09 64 views
1

什麼跨瀏覽器的JavaScript SVG庫將允許我顯示和交互預製 SVG圖像。使用SVG文件的跨瀏覽器解決方案?

我知道這些庫:

  • Raphaël:我目前使用這種帶有SVG插件加載一起。但該插件不支持Inkscape或Adobe Illustrator SVG(即大多數SVG)。
  • cang:這個庫看起來很有希望,但它需要<canvas>支持,IE本身沒有。
  • svgweb:另一個更有前途的圖書館。它需要Flash,但大多數IE用戶都有Flash。
  • jQuery SVG:它似乎能夠加載SVG圖像,但開發似乎已經死亡。它需要我使用jQuery 1.3的修改版本。

我基本上試圖讓大塊任意圖像「可選擇」。

任何幫助將不勝感激。

回答

3

Raphaël確實支持導入Illustrator SVG,通過使用this great plugin。您只需將您的ai文件保存爲SVG,使用文本編輯器打開它,複製代碼並將其與插件一起導入。作品很好,除了:只支持「路徑」對象,沒有文字,沒有漸變,沒有陰影...

+0

我現在正在使用它。不幸的是,它不能很好地工作,並且導出的Illustrator圖像相當糟糕(我得到一個黑色的矩形而不是實際的形狀)。 – Blender

+0

它對複雜的SVG文件有限制。你能發佈你正在使用的SVG文件嗎? – Choy

+0

問題在於SVG文件的兩個第一個元素:它們是rect項目。該插件僅支持路徑。如果你將它們刪除,它就會起作用。 – Choy

0

你可以做的是使用cang和svgweb的組合,你可以檢查瀏覽器是否允許畫布,如果是,加載cang並使用它。否則檢查他們是否有閃光燈,如果是的話,請使用svgweb。如果他們沒有,則告訴他們升級瀏覽器。

如果您不確定javascript功能檢測的問題,您可以閱讀。

+0

不幸的是,我可能不得不這樣做。但我並不是很激動地重新編寫大量的代碼來與兩個庫一起工作,但是如果這是需要的,那麼我將不得不這樣做。 – Blender

0

我會試圖利用Google Chrome Frame(一個IE插件)。這將節省您維護兩套代碼(一個用於IE用戶,另一個用於常規瀏覽器用戶)。添加下面的元標記到您的網頁將使SVG渲染在IE(通過GCF):

<meta http-equiv="X-UA-Compatible" content="chrome=1"> 

See here的說明如何檢測,並有可能提示用戶安裝GCF。

+0

我想過GCF,但很難讓任何IE用戶安裝它。我更喜歡可以直接使用的東西。 – Blender

0

我發現的最好的解決方案是使用Raphael和this tool,它允許您將SVG文件(在我的情況下由Illustrator生成)轉換爲Raphael代碼。而且因爲拉斐爾是IE6 + - 你可以很容易地在你身上做一些努力。

Here是我可以用這兩個東西的組合來實現的例子。

相關問題