2008-08-13 9 views
28

私が取り組んでいるウェブサイトには、インタラクティブなもの(DOMリスナーなどで結びつけ、イベントハンドリングをする)のベクターグラフィックスを表示する必要があります。 SVGのW3C勧告がありますが、このフォーマットはInternet Explorerのサポートでは認識されませんが、これは必須です(公開Webサイト用)。 IEはVMLを処理しますが、ブラウザ(SVGとVML)に応じてキャンバスのような描画を行うjavascriptライブラリもあります - excanvasGFX of Dojo Toolkitなどです。それは素晴らしいと受け入れられるだろうが、彼らの誰も与えられたマークアップからのSVGイメージを表示することはできません。ブラウザにベクターグラフィックスを表示する

そこで問題は、実際にいくつかの部分で構成されています

  1. は、与えられたマークアップ(ない義務SVG)からベクターグラフィックスとDOMイベントにアタッチするオファーの可用性を表示する任意のクロスブラウザのJavaScriptライブラリはありますか?
  2. もしそうでなければ、最も込み入ったブラウザ組み込み技術のどれがそのようなタスクを行うのに最適でしょうか? Flex/Flash、Javaアプレットから選択できます。 SilverlightはWindowsロックインのためにオプションではありません。

[EDIT]ご意見/ご提案ありがとうございました。以下は、この問題についてはいくつかの私のランダムノート/結論は以下のとおりです。

  • 私は必要な対話のレベルが表示されている、ベクター画像上のDOMイベントを検出する能力である - マウスオーバー、マウスアウト、クリックなど - と反応する能力背景色を変えたりダイアログを表示したりするのと同じように。
  • SVG形式に固執する考えは、最も人気のある1つのIEを除いて多くのブラウザでネイティブであるため非常によくあります。動的なSVGを表示することを実験した後、私はIEバージョン7が最も問題であることに気付きました。ブラウザの非互換性のためにあまりにも多くの面倒があります。
  • CakeはすばらしいJavascriptフレームワークのようですが、IE7で動作するサンプルを手に入れることはできませんでした。
  • Javaアプレット - 良質のSVGレンダラーであるApache Batikライブラリーを使用することができましたが、そのアイデアは私が最も好きでした。しかし、Batikは非常に大きなライブラリであり、私は数メガバイトの重さのアプレットを配備する余裕はありません。
  • 私はFlexオプションを採用することに決めました。いいベクトルグラフィックスライブラリDegrafaが見つかりました。それは独自のマークアップ形式を使用していますが、SVGパス表記法を認識していますので、私の場合はXSLTを使ってSVGを変換するか、単に解析するだけです。

[EDIT 2]もう少しコメントが出ました。私は、「Windowsロックイン」によって、Silverlightが通常Windows、具体的にはIE上で実行される状況を意味することを明確にしたいと思います。私はそれが他のシステム上で受け入れられた解決策(例えば、FlashやJava Appletのような)であるとは思わない。はい、私は疑問が全くありません私はそれが平均的なユーザーのためにあまりにも多くの努力になると思うが、任意のシステム上でSilverlightアプリケーションを起動することができます。

@Akira:IE7の「SVGレンダラー」に問題はありますか?私は常にJavascriptのエラーをスローされます。

答えて

1

多くのブラウザで実装されている新しいCanvas要素を見てみましょう。 Canvas要素を実装するIEのActiveXコントロールもあると聞きました。

更新:あなたはすでに言った。私は次の質問全体を読むべきです!:)

0

SVGに移動して、ユーザーにIE用のADOBE SVGプラグインを入手するように指示します。

この素晴らしいサイトを参照してください - 英国政府サイト(公共サービス)である

ELGIN

+1

私の知る限り、アドビはプラグインのサポートを中止する予定です。 –

0

IEは、VMLをサポートしていますが、他には何もしませんし、それは醜いです。 Microsoftは新しいXAMLなどでそれを削除したと主張しましたが、まだOffice XML形式の一部です(Excel xlsxがコメントをサポートする方法は不思議です)。

FXと新しいキャンバス要素をサポートします。多くの人がSVGをサポートしていますが、MSがSilverlight上で行っている作業を考えれば、私はいつでもすぐにSVGをサポートするIEを見ることができません。

マイクロソフトでは、MSオペレーティングシステム用にSilverlightプラグインを提供する予定です。

私はFlexを使用しています。Eclipseを使用していてもかなり良いです。 Flexを使用するには、非常に高価なAdobeサーバーコンポーネントを購入する必要はありません.SSOサービスを使用することができます。

Flexの開発ツールは非常に手頃で、ほとんどの人がFlashを使用しています。

0

私はSVGが将来的には良い選択ではないと思います。 Wikipediaから:

  • もサポートしていません
  • 」...インターネットエクスプローラー「最も一般的なIEのプラグインは、アドビシステムズ社のAdobeによって生成された、しかし、2009年の初めに、本製品を撤回することを計画しています」次期バージョンIE8"
  • 「のSVG ...すべてがCorelのSVG Viewerのプラグインを一度コーレルから提供された。その開発は停止しました」
  • 『... SVG 1.1の不完全なサポートを持っています。』
+1

すべてのブラウザで動作するベクトル形式はありませんが、SVGは良い解決策の一部になる可能性があります。 IE上で動作することは決してないことを認識するだけで(HTML、CSS、その他のWeb標準など)、誰も完全にサポートしていないので、どこでもテストする必要があります。 – Ken

9

Safari、Opera、Firefoxはすべて、SVGをjavascriptからスクリプト化する機能を含む、完全性と正確さの程度に応じてネイティブに(例えばプラグインなしで)サポートしています。

html5で標準化されているキャンバス要素もあります(すでにhtml5ドラフトの比較的最近の変更により特定のエッジケースでさまざまな癖があります)。

残念なことに、あらゆる標準に基づくアプローチは、IE自身のエコシステム外で起こっていることを意図的に無視することによって破壊されますが、キャンバス/ svgをVML(IE独自のベクター言語)に変換しようとするライブラリiecanvas

[編集:whoops、私はお気に入りのjsライブラリを忘れました - Cake!そのキャンバスにSVGを解析して表示することができ、同様にIEをサポートしています信じている]

[さらに別の編集:ケーキは実際に私はあなたがやりたいと思う何をしてdemoを持っ]

6

Raphael Javascript libraryを見てみましょう。それは初期段階ですが、非常に有望です。

私は、IE7.2にSVGサポートがリストされているIEロードマップを覚えています。

どのようにインタラクティブにしたいですか?

0

既存のテクノロジー(Javascript)、殆どサポートされていない(SVG、Canvas要素)または多くの作業(Java)の恐ろしい虐待ではない唯一のものがFlashです。これはベクターグラフィックスパッケージとして設計されており、SVGやキャンバスタグよりも多くのブラウザと互換性があります。

私が他のすべてのオプションよりもFlashを選択しない理由は、モバイルブラウザを目指しているのか、Flashパッケージの予算がないのかということだけです。

2

Silverlightで「Windowsロックイン」の意味を明確にすることはできますか?それはWindowsとMacIntel上で動作し、ベクトル部分はLinux上でMoonlightプラグインで正常に動作します。

あなたはアミーガのサポートの欠如によって捨てられましたか?

1

Walter Zornには、任意のベクターグラフィックスのためのJavaScript libraryがあります。それはまともです。

関連する問題