2009-09-15 24 views
16

Czy ktoś wie o obszernej bibliotece, dzięki której SVG może pracować z IE (w szczególności 7 i 8)?Jak sprawić, aby SVG działało z IE?

Potrzebowałem czegoś, co mogłoby zostać włączone do mojej strony internetowej i które w milczeniu zamieniałoby cały mój SVG na VML w sposób podobny do tego, co robi excanvas dla Canvas.

Odpowiedz

15

Pomoże Ci tam Raphaël—JavaScript Library.

Raphaël używa zalecenia SVG W3C i VML jako podstawy do tworzenia grafiki i obsługuje przeglądarki Firefox 3.0+, Safari 3.0+, Opera 9.5+ i Internet Explorer 6.0+.

EDIT:

Istnieją dwa więcej JS-bibliotek, które wykorzystują VML do renderowania pomostów żylnych w IE:

  • Ample SDK (gdzie powinno być możliwe w prosty sposób zintegrować istniejące pliki SVG)
  • DojoX GFX z zestawu narzędzi Dojo
+3

Czy możesz otworzyć plik SVG z tą biblioteką? – Milhous

+1

Niezupełnie. z tego, że obsługiwany jest tylko podzbiór svg/vml, więc nie można tak naprawdę pobrać pliku svg i "otworzyć" go w Rafael. Ale synatax ścieżki jest taki sam, więc musisz skopiować wszystkie ścieżki z svg do kodu javascript (lub napisać coś, co robi to automatycznie dla ciebie). Myślę, że większość ludzi kopiuje swoje (uproszczone) ścieżki z inkscape lub innych edytorów do kodu raphael –

6

Myślę, że jest to droga, nawet jeśli jest oparta na technologii Flash, ponieważ VML nie jest wystarczająco szybki dla wielu aplikacji.

15

Google's SVG Web robi to. Według strony internetowej projektu:

SVG Web jest biblioteką JavaScript, który zapewnia obsługę SVG na wielu przeglądarkach, tym Internet Explorer, Firefox, i Safari. Korzystając z biblioteki oraz oryginalnej obsługi SVG, możesz docelowo ~ 95% istniejącej zainstalowanej bazy internetowej .

Chociaż jest to opisane jako biblioteka JavaScript, wymaga również Flash 9+. Zazwyczaj nie stanowi to problemu, ale jeśli pracujesz w środowisku korporacyjnym ze starym Flash lub bez Flasha na stacjach roboczych, to nie zadziała.

Również w Alphie może to stanowić problem, w zależności od projektu.

+1

-1 (filozoficznie, nie dosłownie) dla rozwiązania opartego na technologii Flash. Flash jest zastrzeżoną technologią sprzedawcy-dławika. –

+11

Podobnie jak IE. Jego jedynym rozwiązaniem Flasha jest rozwiązanie * open * IE. – voyager

+0

To wciąż jest w etapach alfa. –

2

Adobe dostarcza skrypty do automatycznego wykrywania, zainstalować i przekierowanie z powrotem do oryginalnej strony:

http://support.adobe.com/devsup/devsup.nsf/docs/51780.htm

http://www.adobe.com/svg/workflow/autoinstall.html

Używam tego dość skutecznie na mojej stronie.

+4

Implementacja 'svg' firmy Adobe nie jest już rozwijana. – voyager

+0

W rzeczywistości, myślę, że zaprzestali rozwijania go na długo przed wydaniem IE 8. Jeśli działa z IE 8, to tylko szczęście. –

+0

Działa w IE8. Przetestowałem to. Wciąż go wspierają jako starsze pobieranie. –

0

Bardziej nisko technologiczne rozwiązanie byłoby używać czegoś takiego jak svg_alike (wstaw tutaj powiadomienie o konflikcie interesów :)). Sprawdza obsługę SVG, a jeśli jej nie znajdzie, zastępuje wszystkie obrazy SVG plikami PNG.

https://github.com/forwardadvance/svg_alike

Tracisz zalety płynnego powiększania wektorowych, siatkówki i wsparcia, ale użytkownicy IE8 jest mało prawdopodobne, aby skorzystać z tych funkcji tak.

Zaletą jest to, że nie trzeba konwertować obrazów na JavaScript. Myślę, że zapewnia on 80% wartości dla 5% pracy.

Powiązane problemy