2009-09-15 8 views
16

Có ai biết thư viện toàn diện để làm SVG hoạt động với IE (7 và 8 nói riêng) không?Làm cách nào để SVG hoạt động với IE?

Tôi muốn một cái gì đó Javascript có thể được bao gồm trong trang web của tôi và âm thầm sẽ chuyển đổi tất cả SVG của tôi thành VML theo cách tương tự như những gì excanvas làm cho Canvas.

Trả lời

15

Raphaël—JavaScript Library có thể giúp bạn.

Raphaël sử dụng Đề xuất SVG W3C và VML làm cơ sở để tạo đồ họa và hỗ trợ Firefox 3.0+, Safari 3.0+, Opera 9.5+ và Internet Explorer 6.0+.

EDIT:

Có hai hơn js-thư viện mà sử dụng VML để render svgs trong IE:

  • Ample SDK (nơi người ta có thể dễ dàng tích hợp file svg hiện có)
  • DojoX GFX từ Bộ công cụ Dojo
+3

Bạn có thể mở một svg với thư viện này không? – Milhous

+1

Không thực sự. của couse chỉ một tập hợp con của svg/vml được hỗ trợ, vì vậy bạn không thể thực sự lấy một tệp svg và "mở" nó trong raphael. Nhưng con đường synatax là như nhau, vì vậy về cơ bản bạn phải sao chép tất cả các đường dẫn từ svg vào mã javascript của bạn (hoặc viết một cái gì đó mà điều này tự động cho bạn). Tôi nghĩ hầu hết mọi người chỉ sao chép đường dẫn (đơn giản) của họ từ inkscape hoặc các trình chỉnh sửa khác vào mã raphael –

6

Tôi nghĩ rằng SVGWeb là cách để tiếp tục, ngay cả khi dựa trên Flash vì VML không đủ nhanh cho nhiều ứng dụng.

15

Google's SVG Web thực hiện việc này. Theo trang web dự án:

SVG Web là một thư viện JavaScript mà cung cấp hỗ trợ SVG trên nhiều trình duyệt, bao gồm Internet Explorer, Firefox, và Safari . Sử dụng thư viện cộng với hỗ trợ SVG gốc bạn có thể ngay lập tức mục tiêu ~ 95% của cơ sở web đã cài đặt hiện tại .

Trong khi thư viện được mô tả là thư viện JavaScript, nó cũng yêu cầu Flash 9+. Điều này thường không phải là vấn đề, nhưng nếu bạn đang ở trong môi trường công ty với Flash cũ hoặc không có Flash trên các máy trạm thì nó sẽ không hoạt động.

Ngoài ra, nó vẫn còn trong Alpha có thể là một vấn đề, tùy thuộc vào dự án của bạn là gì.

+1

-1 (theo triết học, không theo nghĩa đen) cho giải pháp dựa trên Flash. Flash là một công nghệ độc quyền, nhà cung cấp chokehold. –

+11

Vậy là IE. Chỉ phù hợp với Flash của nó là giải pháp để * mở * IE. – voyager

+0

Điều này vẫn đang trong giai đoạn alpha. –

2

Adobe cung cấp kịch bản để tự động phát hiện, cài đặt và chuyển hướng bạn quay lại trang web ban đầu của bạn:

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

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

tôi đã được sử dụng này khá thành công trên trang web của tôi.

+4

Việc triển khai 'svg' của Adobe không còn được phát triển nữa. – voyager

+0

Trong thực tế, tôi nghĩ rằng họ bỏ phát triển nó lâu trước khi IE 8 được phát hành. Nếu nó hoạt động với IE 8, nó chỉ là may mắn. –

+0

Nó hoạt động trong IE8. Tôi đã thử nghiệm nó. Họ vẫn đang hỗ trợ nó dưới dạng bản tải xuống cũ. –

0

Giải pháp kỹ thuật thấp hơn sẽ là để sử dụng một cái gì đó như svg_alike (chèn xung đột thông báo quan tâm ở đây :)). Nó kiểm tra hỗ trợ SVG, sau đó nếu nó không tìm thấy nó, nó sẽ thay thế tất cả các hình ảnh SVG bằng PNG.

https://github.com/forwardadvance/svg_alike

Bạn mất những lợi thế của zoom vector trơn tru, và hỗ trợ võng mạc, nhưng người dùng IE8 không có khả năng tận dụng các tính năng này anyway.

Lợi thế là bạn không phải chuyển đổi hình ảnh của mình thành JavaScript. Tôi nghĩ rằng nó cung cấp 80% giá trị cho 5% công việc.