Встроенный SVG в Firefox

Я немного озадачен этим. Я визуализирую SVG-визуализации, используя Protovis, библиотеку JS, и она отлично работает как в Chrome, так и в Firefox. Я сохраняю визуализированный SVG на своем сервере и пытаюсь перерисовать его в виде "галереи", используя функцию PHP, но в Firefox это не удается. Я вижу только текст в SVG, но не SVG.

Я сохраняю полный SVG-контент, вот так:

<svg height="220" width="880" stroke-width="1.5" stroke="none" fill="none" font-family="sans-serif" font-size="10px"><g transform="translate(30, 10)"><line stroke-width="1" 

Я пытался использовать <object> но все, что делает, это заставляет Firefox загрузить плагин, который он не может найти.

Он работает в бета-версии FF4, но я не понимаю, почему он не будет работать даже в Firefox 3.6. Это то, от чего я должен отказаться? Вы можете увидеть демо здесь:

http://www.rioleo.org/protoviewer (нажмите на "галерею")

Еще раз спасибо!

3 ответа

Решение

Inline SVG работает только в Firefox в двух ситуациях:

  • В Firefox включен экспериментальный парсер HTML5 (т. Е. Вы используете 4.0 ночью)
  • Анализируемый документ не HTML, а XHTML (Content-type: application/xhtml+xml)

object подход, предложенный Робом, должен работать, пока отдельный файл SVG приходит с вашего сервера с Content-type: image/svg+xml и вы используете правильный синтаксис:

<object data="foo.svg" type="image/svg+xml" width="400" height="300">

См. Статью Дамиана Кьюгли "SVG: объект или вставка?" для получения подробной информации о некоторых других опциях, или используйте SVGWeb.

Убедитесь, что вы используете правильные атрибуты с элементом объекта и конечным тегом:

<object data="yourimage.svg"></object>

Этот пример может быть полезным для вас, объяснение. Поддержка рендеринга SVG во время загрузки, а MIME text/html - это поддерживаемая функция веб-фреймворка ItsNat Java, в любом случае она была вдохновлена этим кодом JS, последний может быть полезен для вас в вашем контексте (PHP).

Другие вопросы по тегам