2010-12-12 9 views
5

私はこれでちょっと困惑しています。私は、JSライブラリのProtovisを使用してSVGの視覚化をレンダリングしています。これは、ChromeとFirefoxでうまく動作します。私はレンダリングしたSVGをサーバ上に保存し、PHP関数を使って "ギャラリー"ビューで再レンダリングしようとしますが、これはFirefoxでは失敗します。私が見ているのは、SVGのテキストですが、SVGのテキストはありません。 Firefoxのインライン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:あなたはここでデモを見ることができます!

+0

あなたはheader( "Content-type:image/svg + xml")を試してみましたか? – pastjean

+0

それはページを見えないようにレンダリングしませんか? – Rio

答えて

4

インラインSVGは2つのだけの状況で、Firefoxで動作します。

  • Firefoxが有効になって実験HTML5 parserを持っています(つまり、夜間に4.0を使用している)
  • 解析対象のドキュメントはHTMLではなく、XHTMLContent-type: application/xhtml+xml
  • いくつかの他のオプションの詳細については、

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

    参照Damian Cugley's article 'SVG: object or embed?':ロブによって提案

objectアプローチは限り別々のSVGファイルがContent-type: image/svg+xmlを使用して、サーバから来ているとあなたは正しい構文を使用すると、動作するはずです、またはSVGWebを使用してください。

+0

ファイル内のコンテンツタイプのメタタグをxhtml + xmlに変更するとどうなりますか? – Rio

+0

@Rioメタタグとは何の関係もありません。コンテンツタイプは、Webサーバーから送信されたHTTPヘッダーにあります。これは、通常、pastjeanのコメントに従って、サーバー側のスクリプト言語から制御可能です。サーバーサイドスクリプティング言語を使用していない場合は、Webサーバーの設定を確認するか、ファイル拡張子を '.xhtml'に変更してみてください。 – robertc

0

オブジェクト要素と終了タグで正しい属性を使用していることを確認:

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

良い点、私は変更を加えたので、ChromeとFirefoxの両方でiFrameのように見えます(コードは見たい場合はまだ「ギャラリー」タブにあります)、最後のボックスです。 – Rio

+0

@リオ - 私はこれについて信用できない? – Rob

+0

それはうまくいきません:D – Rio

0

This exampleは、explanationに役立つ場合があります。読み込み時のSVGレンダリングのサポートとMIME text/htmlは、ItsNatのサポートされている機能です。とにかく、this JS codeに触発されました。後者は、あなたのコンテキスト(PHP)で役に立ちます。

関連する問題