Любое кросс-браузерное решение для SVG? - PullRequest
4 голосов
/ 20 июля 2011

Я знаю, что Raphael.js использует svg, и он полностью кроссбраузер: он даже работает на ie6! Так что я думаю, что должно быть какое-то исправление js, которое позволяет использовать svg в любом браузере, верно? Мне не нужна целая библиотека графики и анимации, такая как Raphael, просто поддержка SV в IE и т. П.

Я только что читал о SVGweb, в разработке которого участвовал Google, но, очевидно, он использует Flash, поэтому он не безопасен для всех браузеров.

Ответы [ 2 ]

3 голосов
/ 20 июля 2011

У Raphael есть бэкэнд для рисования для IE, который использует VML DOM, и бэкэнд для браузеров с поддержкой SVG, который использует SVG DOM.Затем он имеет фасад, который предоставляет унифицированный API рисования, и во время выполнения загружает соответствующий бэкэнд, который делегирует вызовы унифицированного API рисования соответствующему API браузера (либо SVG, либо VML DOM).

Это распространенная стратегия в библиотеках js.Например, эта стратегия также используется в dojox.gfx .Посмотрите, вот адаптер SVG: http://svn.dojotoolkit.org/src/dojox/trunk/gfx/svg.js А вот адаптер VML: http://svn.dojotoolkit.org/src/dojox/trunk/gfx/vml.js

Хотя я и сам не пробовал, еще одна библиотека, с которой вы можете ознакомиться, - Ample SDK, который работает аналогично SVG Web, в котором разработчик программирует против обычного API DOM SVG, в отличие от конкретного API, предоставляемого библиотекой JavaScript.Как и SVG Web, для этого он использует теневой DOM.Однако он отличается от SVG Web тем, что не использует Flash, а вместо этого делегирует VML внутренне в IE.

1 голос
/ 21 июля 2011

Я использовал как svgweb, так и Raphael. Я обнаружил, что svgweb имеет ужасную производительность, когда много добавлений и удалений элементов в / из DOM (даже с suspendRedraw). У Рафаэля была неполная поддержка всей спецификации SVG.

Единственное решение, которое я считаю вполне адекватным, - это использование Google Chrome Frame для поддержки SVG. Это так легко и даже исправляет глючный JavaScript!

Он работает в IE6 + и во всех других браузерах, которые изначально не поддерживают SVG.

http://code.google.com/chrome/chromeframe/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...